C/C++ Programmer's Guide (G06.27+, H06.08+, J06.03+)
If your program has multiple compilation units, you use Binder to combine the TNS object files
produced by the C compiler into one executable TNS object file.
If your program comprises a single compilation unit, you can use the RUNNABLE pragma in the
C++ source file or on the Cprep run command line to direct the TNS C compiler to produce an
executable TNS object file without having to run the Binder.
You use this syntax to run the TNS C compiler:
[ RUN ] C / IN intermediate-file2, OUT listing ]
[ , run-options ] / [ object ] [ ; pragma [ , pragma ]...]
IN intermediate-file2
specifies the name of the file that contains the output from Cfront.
OUT listing
specifies the file to which the TNS C compiler writes the compiler listing. When specified,
listing is usually a spooler location. If you omit the OUT option, the compiler writes the
listing to your current default output file, usually the terminal.
When you run the TNS C compiler, error and warning messages are sent to listing (stdout),
not stderr.
run-options
is a comma-separated list of additional options for the RUN command. These options are
described in the TACL Reference Manual.
Object
specifies the file to which the TNS C compiler writes the TNS object code. If you do not specify
an object file, the TNS C compiler writes the TNS object code to the file OBJECT in your current
default volume and subvolume. If OBJECT cannot be created, the compiler writes the object
code to the file ZZBInnnn (where nnnn is a unique four-digit number) in your current default
volume and subvolume.
pragma
is a C compiler pragma.
These TNS C compiler pragmas are intended for Cprep and can appear only in this Cprep
run command syntax or in the C++ source code:
RUNNABLE[NO]CHECK
SECTION (source code only)COLUMNS
SSV (command line only)ERRORS
[NO]WARN[NO]NEST
[NO]WIDE[NO]OLDCALLS
Pragmas NOXMEM and SQL are invalid for C++. If either of these pragmas appear, Cfront
issues a warning and ignores the pragma.
Usage Guideline
You can place pragmas intended for the TNS C compiler on the TNS C compiler run command
line. However, this practice is a likely source of errors in consistency and configuration management,
because these same pragmas can also appear on the Cprep run command line. Therefore, whenever
possible, you should place pragmas in the original C++ source code or on the Cprep run command
line. Cprep passes the pragmas intended for the TNS C compiler through to Cfront for the TNS C
compiler.
278 Compiling, Binding, and Accelerating TNS C++ Programs