Program-level interprocedural analysis imposes some requirements and limitations on the source code files that the compiler translates: