PL/I Compiler Options Support Reference
This reference describes the support level for standard Enterprise PL/I compile-time compiler options in Z Open Editor.
Compile-Time Compiler Options Reference
The following table lists standard Enterprise PL/I compile-time options, their official descriptions, and their support level in Z Open Editor.
| Compiler Option | Official IBM Description | Support Level |
|---|---|---|
AGGREGATE | The AGGREGATE option creates an Aggregate Length Table that provides the lengths of arrays and major structures in the source program in the compiler listing. | Ignored |
ARCH | The ARCH option specifies the architecture for which executable programs instructions are generated. It enables the optimizer to take advantage of specific hardware instruction sets. | Ignored |
ASSERT | The ASSERT option controls whether ASSERT statements call a default library routine that raises the ASSERTION condition or a user-provided routine. | Not Supported (The editor does not evaluate assertions.) |
ATTRIBUTES | The ATTRIBUTES option specifies that the compiler includes a table of source program identifiers and their attributes in the compiler listing. | Ignored |
BACKREG | The BACKREG option controls the backchain register, which is used to pass the address of the automatic storage of a parent routine when a nested routine is invoked. | Ignored |
BIFPREC | The BIFPREC option controls the precision of the FIXED BIN result returned by various built-in functions. | Not Supported (The editor does not validate types or evaluate literals.) |
BLANK | The BLANK option specifies up to ten alternate symbols for the blank character. | Not Supported |
BLKOFF | The BLKOFF option controls whether the offsets shown in the pseudo-assembler listing (produced by the LIST option) and the statement offset listing (produced by the OFFSET option) are measured from the start of the compile unit (NOBLKOFF) or from the start of the current procedure (BLKOFF). | Ignored |
BRACKETS | The BRACKETS option specifies the symbols that the SQL preprocessor accepts as the left and right brackets in SQL array references. | Not Supported |
CASE | The CASE option controls whether certain names are shown in uppercase or in the same format in which they appear in the source program. | Ignored |
CASERULES | The CASERULES option controls the enforcement of case rules for keywords. | Not Supported |
CHECK | The CHECK option specifies whether the compiler generates special code to detect various programming errors. | Ignored |
CMPAT | The CMPAT option specifies whether object compatibility with OS PL/I Version 1, OS PL/I Version 2, PL/I for MVS & VM, or Enterprise PL/I for z/OS is maintained for programs that share strings, AREAs, arrays, or structures. | Supported |
CODEPAGE | The CODEPAGE option specifies the code page used for conversions between CHARACTER and WIDECHAR, between CHARACTER and UCHAR, and between EBCDIC and ASCII. | Not Supported (Workspace encodings are used instead.) |
COMMON | The COMMON option directs the compiler to generate CM linkage records for EXTERNAL STATIC variables. | Ignored |
COMPILE | The COMPILE option causes the compiler to stop compilation after semantic checking of the source program if a message of a specified severity is produced during preprocessing or semantic checking. | Ignored |
COPYRIGHT | The COPYRIGHT option places a string in the object module, if generated. This string is loaded into memory with any load module into which the object module is linked. | Ignored |
CSECT | The CSECT option ensures that the object module, if generated, contains named CSECTs. | Ignored |
CSECTCUT | The CSECTCUT option controls how the compiler handles long names when processing the CSECT option. | Ignored |
CURRENCY | The CURRENCY option enables you to specify an alternate character to use in picture strings instead of the dollar sign. | Not Supported |
DBCS | The DBCS option ensures that the listing, if generated, is sensitive to the possible presence of DBCS even when the GRAPHIC option is not specified. | Ignored (DBCS parsing is always enabled.) |
DBRMLIB | The DBRMLIB option specifies where the SQL preprocessor writes its DBRM data set when running under z/OS UNIX System Services. | Ignored |
DD | The DD option enables you to specify alternate DD names for the various data sets that the compiler uses. | Ignored |
DDSQL | Using the DDSQL option enables you to specify an alternate DD name for the data set that the SQL preprocessor uses when resolving EXEC SQL INCLUDE statements. | Ignored |
DECIMAL | The DECIMAL option specifies how the compiler handles certain FIXED DECIMAL operations and assignments. | Not Supported (Editor does not validate typing and literal evaluations.) |
DECOMP | The DECOMP option instructs the compiler to generate a listing section that provides a decomposition of expressions used during compilation. | Ignored |
DEFAULT | The DEFAULT option specifies defaults for attributes and options. These defaults are applied only when the attributes or options are not specified or implied in the source code. | Not Supported (Editor does not validate typing and literal evaluations.) |
DEPRECATE | This DEPRECATE option flags variable names, included file names, and statement names that are designated as deprecated with error messages. | Not Supported |
DEPRECATENEXT | The purpose and usage of the DEPRECATENEXT option are the same as those of the DEPRECATE option, except that the compiler issues warning messages rather than error messages for items that are planned for deprecation in a future development phase. | Not Supported |
DISPLAY | The DISPLAY option determines how the DISPLAY statement performs I/O. | Ignored |
DLL | When the DLL option is in effect, the compiler generates DLL code. The DLL code can export or import functions and external variables. The RENT option must also be specified when the DLL option is specified. | Ignored |
DLLINIT | The DLLINIT option applies OPTIONS(FETCHABLE) to all external procedures that are not MAIN. Use this option only for compilation units that contain one external procedure. That procedure should then be linked as a DLL. | Ignored |
EXIT | The EXIT option enables invocation of the compiler user exit. | Ignored |
EXPORTALL | The EXPORTALL option controls whether all externally defined procedures and variables are exported for use by a DLL application. | Ignored |
EXTRN | The EXTRN option controls when EXTRNs are emitted for external entry constants. | Ignored |
FILEREF | The (NO)FILEREF option controls whether the compiler produces a file reference table. The NOFILEREF option eliminates the file reference table from the listing if the compiler issues no messages for the specified FLAG setting. | Ignored |
FLAG | The FLAG option specifies the minimum error severity that requires a message to be included in the compiler listing. | Not Supported |
FLOAT | The FLOAT option controls the use of additional floating-point registers and whether Decimal Floating Point is supported. | Not Supported (Type validation and literal evaluation are not performed.) |
FLOATINMATH | The FLOATINMATH option specifies the precision that the compiler uses when invoking mathematical built-in functions. | Not Supported (Type validation and literal evaluation are not performed.) |
GOFF | The GOFF option instructs the compiler to produce an object file in the Generalized Object File Format (GOFF). | Ignored |
GONUMBER | The GONUMBER option specifies that the compiler produces additional information that enables source-program line numbers to be included in runtime messages. | Ignored |
GRAPHIC | The GRAPHIC option specifies that the source program can contain double-byte characters. | Not Supported (Editor always natively parses graphic literals.) |
IGNORE | The IGNORE option controls whether ASSERT, DISPLAY, and PUT statements are ignored. When a statement is ignored, it is treated as though it were replaced by a semicolon. | Not Supported |
HEADER | The HEADER option controls the type of information that appears in the middle of each header line in the compiler listing, such as the source file name or the first line after any *PROCESS statements, and where that information is displayed. | Ignored |
HGPR | The HGPR option specifies whether the compiler preserves and restores the high halves of the 64-bit GPRs that it uses in a function. | Ignored |
INCAFTER | The INCAFTER option specifies a file to be included after a particular statement in the source program. | Not Supported |
INCDIR | The INCDIR option specifies a directory to add to the search path that is used to locate include files. | Ignored (Supplied through property groups.) |
INCLUDE | The INCLUDE option controls whether the final compiler pass processes %INCLUDE and %XINCLUDE statements. | Not Supported (Includes always parsed and expanded.) |
INCPDS | The INCPDS option specifies a PDS from which the compiler includes files when compiling a program under z/OS UNIX System Services. | Ignored (Configured through property groups.) |
INITAUTO | The INITAUTO option directs the compiler to add an INITIAL attribute to any AUTOMATIC variable that is declared without an INITIAL attribute. | Not Supported (Type validation and literal evaluation are not performed.) |
INITBASED | The INITBASED option directs the compiler to add an INITIAL attribute to any BASED variable that is declared without an INITIAL attribute. | Not Supported (Type validation and literal evaluation are not performed.) |
INITCTL | The INITCTL option directs the compiler to add an INITIAL attribute to any CONTROLLED variable that is declared without an INITIAL attribute. | Not Supported (Type validation and literal evaluation are not performed.) |
INITSTATIC | The INITSTATIC option directs the compiler to add an INITIAL attribute to any STATIC variable that is declared without an INITIAL attribute. | Not Supported (Type validation and literal evaluation are not performed.) |
INSOURCE | The INSOURCE option specifies that the compiler includes a listing of the source program before the PL/I macro, CICS®, or SQL preprocessors translate it. | Ignored |
INTERRUPT | The INTERRUPT option causes the compiled program to respond to attention requests (interrupts). | Ignored |
JSON | The JSON option enables you to choose the case of the names in the JSON text that is generated by the JSONPUT built-in functions and expected by the JSONGET built-in functions. | Not Supported (Type validation and literal evaluation are not performed.) |
LANGLVL | The LANGLVL option specifies the PL/I language level that the compiler accepts. | Not Supported |
LIMITS | The LIMITS option specifies various implementation limits. | Not Supported |
LINEDIR | The LINEDIR option specifies that the compiler accepts %LINE directives. | Not Supported |
LIST | The LIST option specifies that the compiler produces a pseudo-assembler listing. | Ignored |
LISTVIEW | The LISTVIEW option specifies whether the compiler displays the source in the source listing or displays the source after it has been processed by one or more of the preprocessors. | Ignored |
LP | The LP option specifies whether the compiler generates 31-bit code or 64-bit code. It also determines the default size of POINTER, HANDLE, and related variables. | Supported |
MACRO | The MACRO option invokes the MACRO preprocessor. | Supported (Sub-options CASE, FIXED, RESCAN, NAMEPREFIX are also supported.) |
MAP | The MAP option specifies that the compiler produces additional information that can be used to locate static and automatic variables in dumps. | Ignored |
MARGINI | The MARGINI option specifies a character that the compiler places in the column preceding the left margin and in the column following the right margin of listings produced by the INSOURCE and SOURCE options. | Ignored |
MARGINS | The MARGINS option specifies which part of each compiler input record contains PL/I statements and the position of the ANS control character that formats the listing when the SOURCE option, the INSOURCE option, or both apply. The compiler does not process data outside these limits, but it includes the data in source listings. | Supported |
MAXBRANCH | The MAXBRANCH option flags blocks that contain too many branches. Branches include all conditional jumps and each WHEN clause in a SELECT statement that can be converted to a branch table. | Not Supported |
MAXINIT | The MAXINIT option determines when the compiler flags code that generates large object files when the VALUE type function is applied to a typed structure. | Not Supported |
MAXGEN | The MAXGEN option specifies the maximum number of intermediate language statements that can be generated for a user statement. The compiler flags any statement for which this maximum is exceeded. | Not Supported |
MAXMEM | When you compile with OPTIMIZE, the MAXMEM option limits the amount of memory used for local tables associated with specific, memory-intensive optimizations to the specified number of kilobytes. | Ignored |
MAXMSG | The MAXMSG option specifies the maximum number of messages of a given severity, or higher, that a compilation can produce. | Not Supported |
MAXNEST | The MAXNEST option specifies the maximum nesting of various kinds of statements that are allowed before the compiler flags your program as too complex. | Not Supported |
MAXRUNONIF | The MAXRUNONIF option specifies a threshold value that causes the compiler to issue a message for any IF statement that contains a conditional expression of the form (a = y1 | a = y2 | ... | a = yn), where all the y values are constants and n is greater than or equal to the MAXRUNONIF threshold. | Not Supported |
MAXSTATIC | The MAXSTATIC option causes the compiler to flag STATIC variables that exceed a specified size. | Not Supported |
MAXSTMT | The MAXSTMT option causes the compiler to flag blocks that contain more executable statements than a specified limit. When OPTIMIZE is enabled, the compiler also disables optimization for any block that exceeds the specified number of executable statements. | Not Supported |
MAXTEMP | The MAXTEMP option determines when the compiler flags statements that use an excessive amount of storage for compiler-generated temporary variables. | Not Supported |
MDECK | The MDECK option specifies that the preprocessor produces a copy of its output either in the file defined by the SYSPUNCH DD statement under z/OS or in a .dek file under z/OS UNIX System services. | Ignored |
MSGSUMMARY | The MSGSUMMARY option determines whether the compiler adds a summary of all messages issued during compilation to the listing. | Ignored |
NAME | The NAME option specifies that the TEXT file created by the compiler contains a NAME record. | Ignored |
NAMES | The NAMES option specifies the extralingual characters that are allowed in identifiers. | Supported |
NATLANG | The NATLANG option specifies the language that is used for compiler messages, headers, and related output. | Ignored |
NEST | The NEST option specifies that the listing produced by the SOURCE option indicates the block level and the DO-group level for each statement. | Ignored |
NOT | The NOT option specifies up to seven alternate symbols that can be used as the logical NOT operator. | Supported |
NULLDATE | The NULLDATE option instructs the compiler to accept the SQL null date as a valid date in certain date and time handling built-in functions. | Not Supported (Type validation and literal evaluation are not performed.) |
OBJECT | The OBJECT option specifies that the compiler creates an object module. Under batch z/OS, the compiler stores the object module in the data set defined by the SYSLIN DD statement. Under z/OS UNIX System Services, the compiler creates a .o file. | Ignored |
OFFSET | The OFFSET option specifies that the compiler prints a table of line numbers for each procedure and BEGIN block with offset addresses relative to the primary entry point of the procedure. This table can be used to identify a statement from a runtime error message when the GONUMBER option is not used. | Ignored |
OFFSETSIZE | The OFFSETSIZE option determines the size of OFFSETSIZE variables in 64-bit applications. | Not Supported (Type validation and literal evaluation are not performed.) |
ONSNAP | For a PROCEDURE with either the OPTIONS(MAIN) or the OPTIONS(FROMALIEN) attribute, the ONSNAP option specifies that the compiler inserts an ON STRINGRANGE SNAP; statement, an ON STRINGSIZE SNAP; statement, or both into the procedure prologue. This option can simplify identifying the calling chain when the corresponding conditions are raised in routines that are called from the procedure. | Not Supported |
OPTIMIZE | The OPTIMIZE option specifies the type of optimization that is required. | Ignored |
OPTIONS | The OPTIONS option specifies that the compiler includes a list of compiler options that are used during the compilation in the compiler listing. | Ignored |
OR | The OR option specifies up to seven alternate symbols for use as the logical OR operator. These symbols are also used as the concatenation operator, which is defined as two consecutive logical OR symbols. | Supported |
PP | The PP option swhich preprocessors are invoked before compilation and the order in which they are invoked. | Ignored (SQL and CICS statement blocks are always parsed by integrated subparsers.) |
PPCICS | The PPCICS option specifies options that are passed to the CICS preprocessor when it is invoked. | Ignored (SQL and CICS statement blocks are always parsed by integrated subparsers.) |
PPINCLUDE | The PPINCLUDE option specifies options that are passed to the INCLUDE preprocessor when it is invoked. | Ignored |
PPLIST | The PPLIST option controls whether the compiler retains or removes the portion of the listing that is generated by each preprocessor phase. | Ignored |
PPMACRO | The PPMACRO option specifies options that are passed to the PPMACRO preprocessor when it is invoked. | Supported |
PPSQL | The PPSQL option specifies options that are passed to the SQL preprocessor. | Ignored |
PPTRACE | The PPTRACE option specifies that when a deck file is written for a preprocessor, every nonblank line in that file is preceded by a line %LINE directive. The directive indicates the original source file and line number to which the nonblank line is attributed. | Ignored |
PREFIX | The PREFIX option enables or disables specified PL/I conditions in the compilation unit unit without requiring changes to the source program. The specified condition prefixes are logically added to the beginning of the first PACKAGE or PROCEDURE statement. | Not Supported |
PRECTYPE | The PRECTYPE option determines how the compiler derives attributes for the MULTIPLY, DIVIDE, ADD and SUBTRACT built-in functions when the operands are FIXED and at least one operand is FIXED BIN. | Not Supported (Type validation and literal evaluation are not performed.) |
PROCEED | The PROCEED option stops the compiler after preprocessing is completed, depending on the severity of messages that were issued by previous preprocessors. | Ignored |
PROCESS | The PROCESS option determines whether *PROCESS statements are allowed and, if allowed, whether they are written to the MDECK file. | Not Supported |
QUOTE | The QUOTE option specifies an alternate symbol that can be used as the quotation mark character. | Not Supported |
REDUCE | The REDUCE option specifies that the compiler can reduce the assignment of a null string to a structure into simpler operations, even if padding bytes might be overwritten. | Ignored |
RENT | Code is naturally reentrant when it does not modify static variables. The RENT option specifies that the compiler converts code that is not naturally reentrant into reentrant code. | Ignored |
RESEXP | The RESEXP option specifies that the compiler can evaluate all restricted expressions at compile time, even if doing so causes a condition to be raised and the compilation to end with S-level messages. | Ignored |
RESPECT | The RESPECT option causes the compiler to honor any specification of the DATE attribute and to apply the DATE attribute to the result of the DATE built-in function. | Not Supported (Type validation and literal evaluation are not performed.) |
RTCHECK | The RTCHECK option specifies that additional code is generated to raise the ERROR condition when a null pointer is dereferenced. A null pointer is dereferenced if it is used to change or obtain the value of a variable. | Ignored |
RULES | The RULES option allows or disallows certain language capabilities and enables you to select semantics when alternatives are available. It can help identify common programming errors. | Not Supported |
SEMANTIC | The SEMANTIC option specifies that execution of the semantic-checking stage depends on the severity of messages issued before that stage of processing. | Not Supported |
SERVICE | The SERVICE option places a string in the generated object module. The string is loaded into memory with any load module into which the object module is linked, and if the Language Environment (LE) dump includes a traceback, the string is included in the traceback. | Ignored |
SOURCE | The SOURCE option specifies that the compiler includes a source listing in the compiler output. The listed source is either the original source input or, if preprocessors are used, the output from the final preprocessor. The LISTVIEW option can modify what appears in the listing when this option is in effect. | Ignored |
SPILL | The SPILL option specifies the size of the spill area that is used during compilation. When too many registers are in use simultaneously, the compiler stores some register contents in temporary storage known as the spill area. | Ignored |
STATIC | The STATIC option controls whether INTERNAL STATIC variables are retained in the object module even when they are not referenced. | Ignored |
STDSYS | The STDSYS option specifies that the compiler equates the SYSPRINT file to the C stdout file and the SYSIN file to the C stdin file. | Ignored |
STMT | The STMT option specifies that source statements are counted and assigned statement numbers. These statement numbers are used to identify statements in compiler listings generated by the AGGREGATE, ATTRIBUTES, SOURCE, and XREF options. | Ignored |
STORAGE | The STORAGE option directs the compiler to include a summary of storage usage for each procedure and BEGIN block in the compiler listing. | Ignored |
STRINGOFGRAPHIC | The STRINGOFGRAPHIC option determines whether the result of the STRING built-in function, when applied to a GRAPHIC aggregate, has the attribute CHARACTER or GRAPHIC attribute. | Not Supported (Type validation and literal evaluation are not performed.) |
SYNTAX | The SYNTAX option specifies that the compiler continues with syntax checking after preprocessing when the MACRO option is specified, unless an unrecoverable error occurs. Whether compilation continues depends on the severity of the error, as specified by the NOSYNTAX option. | Not Supported |
SYSPARM | The SYSPARM option specifies the value of the string that is returned by the SYSPARM macro facility built-in function. | Supported |
SYSTEM | The SYSTEM option specifies the format that is used to pass parameters to the main PL/I procedure, and generally indicates the host system on which the program runs. | Not Supported |
TERMINAL | The TERMINAL option determines whether diagnostic and informational messages that are produced during compilation are displayed on the terminal. | Ignored |
TEST | The TEST option specifies the level of testing capability that the compiler generates as part of the object code. It can be used to control the location of test hooks and whether a symbol table is generated. | Ignored |
UNROLL | The UNROLL option controls loop unrolling during optimization. Loop unrolling is an optimization technique that replicates a loop body multiple times and adjusts the loop-control code accordingly. | Ignored |
USAGE | The USAGE option enables you to select different semantics for specified built-in functions. | Not Supported |
WIDECHAR | The WIDECHAR option specifies the format in which WIDECHAR data is stored. | Not Supported (Type validation and literal evaluation are not performed.) |
WINDOW | The WINDOW option sets the value for the w window argument that is used by various date-related built-in functions. | Not Supported (Type validation and literal evaluation are not performed.) |
WRITABLE | The WRITABLE option specifies that the compiler can treat static storage as writable. If writable static storage is used, the resulting code is nonreentrant. | Ignored |
XINFO | The XINFO option specifies that the compiler generates additional files that contain extra information about the current compilation unit. | Ignored |
XML | The XML option specifies the case of names in XML output that is generated by the XMLCHAR built-in function. | Not Supported (Type validation and literal evaluation are not performed.) |
XREF | The XREF option provides a cross-reference table of names that are used in the program, together with the statement numbers where the names are declared or referenced. | Ignored |