3

-tc

The -tcoption instructs the compiler to generate pc3 stab information that allows cross-module type checking.

This option can be used for two purposes:

To check for any name conflicts that your program may have with the standard libraries with which it is to be linked, such as libc. The linker allows name conflicts, which may cause erroneous runtime behavior in your program.

For example, the following program has a name conflict with libc:

program p(output); var time: integer; begin

writeln(wallclock);

end.

When the program is compiled with the -tcoption, pc3 issues a warning that the name time is already defined as a libc routine. Running a.out causes a core dump. To avoid this problem, change the name of the variable that has the conflict—in this case, time.

To check for possible name conflicts in the various modules of your program. These conflicts arise if you define a routine with the same name in several modules, or refer to an external, but undefined, variable. The linker detects these error situations and does not create the executable file.

–temp=dir

The –tempoption instructs pc to locate the temporary files that it creates during compilation in the directory named dir. For example, the following command puts the temporary files in the current directory.

hostname% pc -temp=. hello.p

If you do not specify a temporary directory, pc places the temporary files in the /tmp directory.

The Pascal Compiler

47