pc(1) pc(1) Name ppcc -- DDEECC PPaassccaall ccoommppiilleerr Syntax ppcc [_o_p_t_i_o_n] ... _f_i_l_e ... [_o_p_t_i_o_n] Description The _p_c command invokes the _c_p_p preprocessor, the DEC Pascal compiler, and the linker. The DEC Pascal compiler accepts programs that comply with the unextended Pascal standards and programs that comply with a subset of the Extended Pascal standards. DEC Pascal also provides features (called extensions) that are not part of any standard and contains FIPS-109 (Federal Informa- tion Processing Standard) validation support. The Extended Pascal standards are a superset of the unextended Pascal stan- dards. Because DEC Pascal supports many (but not all) Extended Pascal Stan- dard features, it cannot compile all programs that comply with Extended Pascal. See the _D_E_C _P_a_s_c_a_l _L_a_n_g_u_a_g_e _R_e_f_e_r_e_n_c_e _M_a_n_u_a_l for more information about the Pascal standards. The _p_c command accepts the following types of arguments: oo++ Arguments whose names end with ._p, ._P, ._p_a_s, or ._P_A_S, which are assumed to be Pascal language source files. oo++ Arguments whose names end with ._o, which are assumed to be object files. oo++ Arguments whose names end with ._i, which are assumed to be Pascal source code that has been processed by the C preprocessor. They are compiled without being processed by C preprocessor. oo++ Arguments whose names end with ._c, which are assumed to be C language source files. oo++ Arguments whose names end with ._a, which are assumed to be archive library files. oo++ Arguments whose names end with ._s_o, which are assumed to be shared library files. oo++ Other arguments that are interpreted as either loader option arguments or arguments that specify the environment for the compilation. If the environment variable DECPASCAL is set, the value is used as the name of the compiler to invoke. If the environment variable DECPASCAL_LIB_PATH is set, the value is used on the _l_d(_1) command line as a library to search (using the --LL option.) The _p_c command defines the following _c_p_p(_1) macros to _c_p_p(_1) : oo++ LANGUAGE_PASCAL oo++ __LANGUAGE_PASCAL__ oo++ unix oo++ __unix__ oo++ __alpha oo++ __osf__ Options The _p_c command accepts the following options: --aalliiggnn _t_a_r_g_e_t Control the default alignment rules. The _t_a_r_g_e_t parameter is required. You can specify one of the following: _A_l_p_h_a__A_X_P (default) Aligns unpacked objects on natural boundaries based on their size. For example, longwords are aligned on longword boundaries. _v_a_x Aligns unpacked objects on the next byte boundary. --BB Direct _c_p_p(1) to strip comments that begin with "//" and end with newline, in the style of C++. --bbeessttGGnnuumm Request examination of source module data items during compilation and linking to calculate the best number of bytes to be used for the --GG option. Summary information is written to stdout, including a recommended value for --GG .. --CC _k_e_y_w_o_r_d Generate code for run-time checking. Omitting --CC suppresses run-time checking. The _k_e_y_w_o_r_d parameter is required. You can specify one of the fol- lowing: _a_l_l Indicates that all keywords are to be used. _b_o_u_n_d_s Verifies that an index expression is within the bounds of an array's index type, that character-string sizes are compatible with the operations being performed, and that schemata are compa- tible. _c_a_s_e__s_e_l_e_c_t_o_r_s Verifies that the value of a case selector is contained in the corresponding case-label list. _d_e_c_l_a_r_a_t_i_o_n_s Verifies that schema definitions yield valid types and that uses of GOTO from one block to an enclosing block are correct. _o_v_e_r_f_l_o_w Verifies that the result of an integer computation does not exceed the machine representation. _p_o_i_n_t_e_r_s Verifies that the value of a pointer variable is not NIL when being dereferenced. _s_u_b_r_a_n_g_e Verifies that values assigned to variables of subrange types are within the subrange; verifies that a set expression is assignment compatible with a set variable; verifies that MOD operates on positive numbers. --cc Suppress the linking phase of the compilation and force an object file to be produced even if only one program is compiled. --ccaallll__sshhaarreedd Directs the linker to search for unresolved references in shared library files (files that end with .so) before searching in archive library files (files that end with .a). --ccoorrdd Run the _c_o_r_d(1) the resulting file after linking. The rearrange- ment reduces the cache conflicts of the program's text. The output of _c_o_r_d(_1) is left in the file specified by the --oo "output" option or _a._o_u_t, by default. At least one --ffeeeeddbbaacckk _f_i_l_e must be speci- fied. --ccpppp The default. Run the C macro preprocessor on all Pascal source files before compiling. --DD_n_a_m_e=_d_e_f --DD_n_a_m_e Define _n_a_m_e to the _c_p_p(1) preprocessor, as if by #_d_e_f_i_n_e. If no definition is given, _n_a_m_e is defined as "1". --EE Run only the C preprocessor on the files (regardless of the suf- fix), and send the result to the standard output. Sets the --ccpppp option. --eennuummeerraattiioonn__ssiizzee _v_a_l_u_e Control the allocation of enumerated data types. The _v_a_l_u_e parame- ter is required. You can specify one of the following: _b_y_t_e Allocates unpacked enumerated types with fewer than 255 elements in a 8-bit byte. Otherwise unpacked enumerated types are allo- cated in a 16-bit word. The Boolean data type is considered an enumerated type containing two elements and its allocation is also controlled by this option. _l_o_n_g Allocates all unpacked enumerated types in a 32-bit longword. The Boolean data type is considered an enumerated type containing two elements and its allocation is also controlled by this option. --eerrrroorr__lliimmiitt _c_o_u_n_t Direct the compiler to stop after _c_o_u_n_t errors. If _c_o_u_n_t is omit- ted, the default is 30 errors. If --eerrrroorr__lliimmiitt is omitted, the compiler stops after 500 errors. --eennvv _f_i_l_e Produce a file containing compressed symbol table information. The _f_i_l_e parameter is required. The file is used by subsequent DEC Pas- cal compilations of programs that names _f_i_l_e with the INHERIT attribute. You can also use the ENVIRONMENT attribute to create environment files. The default is to not produce an environment file. --ffeeeeddbbaacckk _f_i_l_e Specify the feedback file for _c_o_r_d(1) to use. The _p_r_o_f(1) command produces the feedback file with its --ffeeeeddbbaacckk option from an execu- tion of the program produced by _p_i_x_i_e(1). --GG _n_u_m Specify the maximum size, in bytes, of a data item that is to be accessed from the global pointer. The _n_u_m argument is interpreted as a decimal number. The default value for _n_u_m is 8 bytes. --gg00 The default. Do not produce symbol table information for symbolic debugging. --gg11 Produce additional symbol table information for accurate but lim- ited symbolic debugging of partially optimized code. --gg or --gg22 Produce additional symbol table information for full symbolic debugging and disable optimizations that limit full symbolic debug- ging. This option also sets the --OO00 option to disable optimization unless an explicit --OO option is specified. --gg33 Produce additional symbol table information for full symbolic debugging for fully optimized code. This option produces addi- tional debugging information describing the effects of optimiza- tions, but debugging inaccuracies can occur as a result of the optimizations that have been performed. --ggrraannuullaarriittyy _k_e_y_w_o_r_d Generate additional code to perserve the indicated memory granular- ity. The _k_e_y_w_o_r_d parameter is required. You can specify one of the following: _b_y_t_e _l_o_n_g_w_o_r_d _q_u_a_d_w_o_r_d (default) All modules must be compiled with the same granularity setting to ensure proper behavior. The --ggrraannuullaarriittyy option only affects scalar types. --II Prevent _c_p_p(1) from searching for #_i_n_c_l_u_d_e files in /_u_s_r/_i_n_c_l_u_d_e. (This option applies only to #_i_n_c_l_u_d_e files; you must use complete pathnames with the DEC Pascal %INCLUDE directive.) --II _d_i_r Direct _c_p_p(1) to search for #_i_n_c_l_u_d_e files whose names do not begin with `/' in the following order: (1) in the directory of the file argument; (2) in the directories specified by the --II option; (3) in the standard directory /_u_s_r/_i_n_c_l_u_d_e. (This option applies only to #_i_n_c_l_u_d_e files; you must use complete pathnames with the DEC Pascal %INCLUDE directive.) --KK Do not remove temporary files created during compilation and link- ing. The option does not affect naming for temporary files. To see names and locations of temporary files, specify the --vv option. --LL Prevent the linker from searching for libraries in the standard directories. --LL_d_i_r Direct the linker to search for libraries in _d_i_r before searching the standard directories. --LL_s_t_r_i_n_g Searches _s_t_r_i_n_g libraries for _l_d(1). This option should be placed at the end of the command line. --MM Direct _c_p_p(1) to generate dependency lists suitable for _m_a_k_e(1) instead of the normal output. The dependency lists do not contain files included or inherited with the DEC Pascal %INCLUDE directive or ENVIRONMENT or INHERIT attributes. The output from this command goes to stdout. --mmaatthh__lliibbrraarryy _v_a_l_u_e Determine whether the compiler uses alternate math library rou- tines. The _v_a_l_u_e parameter is required. You can specify one of the following: _a_c_c_u_r_a_t_e (default) _f_a_s_t --nnooccpppp Do not run the _c_p_p(1) preprocessor on Pascal source files before compiling. --nnoonn__sshhaarreedd Direct the linker to search for unresolved references in archive library files (._a files). Does not search ._s_o files. --nnoowwaarrnn Suppress all warning messages. --nnoozzeerroo__hheeaapp Disables the default zeroing of memory by the NEW predeclared rou- tine. --OO00 Disable all optimizations. --OO11 Enable local optimizations and recognition of common subexpres- sions. --OO22 Enable all --OO11 optimizations and some global optimizations. --OO33 Enable all --OO22 optimizations and additional global optimizations that improve speed at the cost of extra code size. --OO oorr --OO44 Enable all --OO33 optimizations and, in addition, enable inline expansion of procedures and functions. --OO55 Enables all --OO44 optimizations and, in addition, enables software pipelining of certain loops. --oo _f_i_l_e Name the final output file _f_i_l_e. If this option is used, the file a.out is undistrubed. Note that you must specify a filename. --PP Run only the C macro preprocessor (_c_p_p) and put the result for each source file (by suffix convention, that is, ._p, ._P, ._p_a_s, ._P_A_S, and ._s) in a corresponding ._i file. The ._i file has no `#' lines in it. This sets the --ccpppp option. --pp00 The default. Disable profiling. If loading occurs, the standard run-time startup routine (crt0.o) is used and the profiling libraries are not searched. --pp11 or --pp Set up profiling by periodically sampling the value of the program counter. This option only effects the loading. When loading occurs, this option replaces the standard run-time startup routine with the profiling run-time startup routine (mcrt1.o) and searches the level 1 profiling library (libprof1.a). When profiling occurs, the startup routine calls the routine _m_o_n_s_t_a_r_t_u_p(3) and produces the file _m_o_n ._o_u_t, which contains execution-profiling data for use with _p_r_o_f(l). --ppgg Set up profiling for _g_p_r_o_f(l). --ppllaattffoorrmmss _n_a_m_e Produce informational messages about non-portable language features for the specified platform. The _n_a_m_e parameter is required. You can specify one of the following: _c_o_m_m_o_n Displays informational messages for all platforms. _O_p_e_n_V_M_S__V_A_X Displays informational messages for the OpenVMS VAX platform. _O_p_e_n_V_M_S__A_X_P Displays informational messages for the OpenVMS AXP platform. _O_S_F_1__A_X_P Displays informational messages for the DEC OSF/1 AXP platform. --sshhooww _k_e_y_w_o_r_d Control what is printed in the listing file. The _k_e_y_w_o_r_d parameter is required. You can specify one of the following: _a_l_l Uses all keywords _h_e_a_d_e_r Header lines on each page of the listing _i_n_c_l_u_d_e %INCLUDE files processed _m_a_c_h_i_n_e__c_o_d_e Symbolic generated code _s_o_u_r_c_e Source file _s_t_a_t_i_s_t_i_c_s Compilation summary page _s_t_r_u_c_t_u_r_e__l_a_y_o_u_t Description of variables and types including size and offset information _x_r_e_f Cross reference of the compilation --ssttdd _s_t_d_n_a_m_e Issue informational or error messages if the program violates the rules of the specified Pascal standard. Does not run _c_p_p(1) when standards checking is enabled. Valid standard names are: _a_n_s_i ANSI/IEEE703X3.97-1989 _a_n_s_i__v_a_l_i_d_a_t_e Issue error level messages instead of default informational level messages. _i_s_o ISO 7185-1989 _i_s_o__v_a_l_i_d_a_t_e Issue error level messages instead of default informational level messages. _e_x_t_e_n_d_e_d ISO 10206-1989 _e_x_t_e_n_d_e_d__v_a_l_i_d_a_t_e Issue error level messages instead of default informational level messages. --uussaaggee _k_t_y_p_e Issue informational messages about unused or uninitialized vari- ables in the program. The _k_t_y_p_e parameter is required. To enable selected keywords, specify --uussaaggee with those keywords; only the selected keywords are enabled. If --uussaaggee is not specified, the compiler does not display usage information. You can specify one of the following: _a_l_l Enables all ktypes. _p_e_r_f_o_r_m_a_n_c_e Detects variables, array components, and record fields that will generate less than optimal performance due to alignment or size considerations. _u_n_c_e_r_t_a_i_n Issues informational messages for components of structures that result in unaligned data accesses. Such accesses may cause poor run-time performance. _u_n_i_n_i_t_i_a_l_i_z_e_d Detects variables that are uninitialized. _u_n_u_s_e_d Detects variables that are unused. _v_o_l_a_t_i_l_e Detects accesses to volatile data that cannot be protected as atomic operations. --VV Create a listing file of the source file with compile-time informa- tion appended. The name of the listing file is the basename of the source file with .l substituted for the suffix of the source file. --vv As the driver program executes, print the passes with their argu- ments and their input and output files. Print final resource usage in C-shell format. Diagnostics The diagnostics produced by _p_c are intended to be self-explanatory. The assembler or loader may occasionally produce messages. Files file.pas input file file.i output from _c_p_p file.o object file a.out loaded output /lib/cpp C macro preprocessor /usr/lib/cmplrs/pc/decpascal DEC Pascal for DEC OSF/1 AXP systems compiler /tmp temporary /usr/bin/pc DEC Pascal compiler driver /usr/bin/cc c compiler driver /usr/lib/cmplrs/pc/crt0.o run-time startup /usr/lib/libpas.a Pascal runtime library /usr/shlib/libFutil.so Fortran utility library /usr/ccs/lib/cmplrs/cc/libexc.a Exception handling library /usr/shlib/libm.so Math library /usr/shlib/libots.so OTS library /usr/shlib/libc.so standard library /usr/ccs/lib/cmplrs/cc/libexc_init.a Exception handling initialization /usr/lib/cmplrs/cc/ld Loader /usr/include Standard directory for #_i_n_c_l_u_d_e files See Also _c_c(_1), _c_o_r_d(_1), _c_p_p(_1), _d_b_x(_1), _l_d(_1), _m_o_n(_1), _p_i_x_i_e(_1), _p_r_o_f(_1), the _D_E_C _P_a_s_c_a_l _L_a_n_g_u_a_g_e _R_e_f_e_r_e_n_c_e _M_a_n_u_a_l for a description of the DEC Pascal align- ment, packing, and allocation rules, and the _D_E_C _P_a_s_c_a_l _U_s_e_r _M_a_n_u_a_l _f_o_r _D_E_C _O_S_F/_1 _A_X_P _S_y_s_t_e_m_s.