IBM Z® Open Editor
Docs
News and Blogs
IBM Downloads
VS Code Marketplace
GitHub
Docs
News and Blogs
IBM Downloads
VS Code Marketplace
GitHub
  • Overview

    • Introduction
    • Updates and user feedback
  • Getting Started

    • Getting started with IBM Z Open Editor
    • Setting up integrations to interact with z/OS
    • Getting started with Zowe 3.0
  • Configuration

    • Setting preferences
    • Configuring your applications with ZAPP files
    • Setting property groups
    • Setting compiler options
    • Setting file associations
    • Setting language-specific tab stops and rulers
    • Enabling and disabling problems in IBM Z Open Editor
    • Enabling and disabling unreachable COBOL code warnings
    • Customizing the Outline view
    • Setting language-specific maximum line length
    • EBCDIC code pages and mappings files
    • Experimental: Formatting COBOL source code
  • Tutorials

    • Tutorial overview
    • Exploring the user interface
    • Exploring the sample files
    • COBOL editing tutorial
    • COBOL, PL/I Preprocessor tutorial
    • HLASM editing tutorial
    • REXX editing tutorial
    • Managing z/OS resources with IBM RSE API Plug-in for Zowe CLI tutorial
    • Submitting JCL to compile, link, and run jobs tutorial
  • Editing program files

    • Language References
    • Making COBOL and PL/I code changes
    • PL/I macro preprocessor
    • Making High Level Assembler code changes
    • Making REXX code changes
    • Making JCL code changes
    • Using and managing code snippets
    • Using the integrated Git
    • Searching for COBOL, PL/I, HLASM, and REXX components
  • Interacting with z/OS using Zowe

    • Interacting with z/OS
    • Creating a configuration profile in Zowe Explorer v3.0.0
    • Migrating Zowe profiles
    • Supported methods of authentication for z/OS using Zowe
    • Sharing team configuration files
    • Connecting to z/OS with Zowe Explorer walk through
    • Using the Zowe Explorer views
    • Using Zowe profiles in Z Open Editor
    • Connecting to z/OS using Zowe CLI walk through
    • Using command line to interact with z/OS
    • Interact with RSE Common Properties
  • Advanced Capabilities

    • Overview
    • Activating advanced capabilities
    • Launching a 3270 emulator from Zowe Explorer
    • z/OS Resources Table
    • Data Elements View
    • Program Control Flow Browser
    • Data Flow Browser
    • Preprocessor support
    • Custom Macros for HLASM
    • Language Detection
    • Linting with IBM ZCodeScan
    • User build with IBM Dependency Based Build (DBB)
    • User build with customizable tasks
    • Agent Mode
    • Line Hex Editor
  • Cloud-based Editing

    • Overview to using Cloud and Browser-based platforms
    • Try Z Open Editor in the Red Hat Developer Sandbox
    • Configuring Red Hat OpenShift Dev Spaces
    • Managing Developer Workspaces
    • Managing secrets
    • Create and use custom images
    • Migrating from IBM Wazi for Dev Spaces
    • Using Z Open Editor on GitHub Codespaces
    • Using Z® Open Editor with Dev Containers
  • Troubleshooting

    • Known issues and limitations
    • Troubleshooting using log files
    • Troubleshooting for User Build
    • Uninstalling CLI plugins and VS Code extensions
  • Reference

    • PL/I Compiler Options Support Reference
    • IBM RSE API Plug-in for Zowe CLI commands
    • IBM RSE API Plug-in for Zowe CLI as nodejs SDK package
    • IBM RSE API Plug-in for Zowe CLI as nodejs SDK reference
    • Example Zowe configuration setups
    • IBM Z Open Editor MCP Tools
    • GRUB Scripts - Git remote user build
    • Accessibility and Keyboard Shortcuts
    • settings.json properties
    • Message ID Reference
    • Other Visual Studio Code extensions
  • Legal information

    • Notices
    • Trademarks
    • Privacy policy considerations

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 OptionOfficial IBM DescriptionSupport Level
AGGREGATEThe 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
ARCHThe 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
ASSERTThe 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.)
ATTRIBUTESThe ATTRIBUTES option specifies that the compiler includes a table of source program identifiers and their attributes in the compiler listing.Ignored
BACKREGThe 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
BIFPRECThe 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.)
BLANKThe BLANK option specifies up to ten alternate symbols for the blank character.Not Supported
BLKOFFThe 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
BRACKETSThe BRACKETS option specifies the symbols that the SQL preprocessor accepts as the left and right brackets in SQL array references.Not Supported
CASEThe CASE option controls whether certain names are shown in uppercase or in the same format in which they appear in the source program.Ignored
CASERULESThe CASERULES option controls the enforcement of case rules for keywords.Not Supported
CHECKThe CHECK option specifies whether the compiler generates special code to detect various programming errors.Ignored
CMPATThe 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
CODEPAGEThe 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.)
COMMONThe COMMON option directs the compiler to generate CM linkage records for EXTERNAL STATIC variables.Ignored
COMPILEThe 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
COPYRIGHTThe 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
CSECTThe CSECT option ensures that the object module, if generated, contains named CSECTs.Ignored
CSECTCUTThe CSECTCUT option controls how the compiler handles long names when processing the CSECT option.Ignored
CURRENCYThe CURRENCY option enables you to specify an alternate character to use in picture strings instead of the dollar sign.Not Supported
DBCSThe 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.)
DBRMLIBThe DBRMLIB option specifies where the SQL preprocessor writes its DBRM data set when running under z/OS UNIX System Services.Ignored
DDThe DD option enables you to specify alternate DD names for the various data sets that the compiler uses.Ignored
DDSQLUsing 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
DECIMALThe DECIMAL option specifies how the compiler handles certain FIXED DECIMAL operations and assignments.Not Supported (Editor does not validate typing and literal evaluations.)
DECOMPThe DECOMP option instructs the compiler to generate a listing section that provides a decomposition of expressions used during compilation.Ignored
DEFAULTThe 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.)
DEPRECATEThis DEPRECATE option flags variable names, included file names, and statement names that are designated as deprecated with error messages.Not Supported
DEPRECATENEXTThe 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
DISPLAYThe DISPLAY option determines how the DISPLAY statement performs I/O.Ignored
DLLWhen 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
DLLINITThe 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
EXITThe EXIT option enables invocation of the compiler user exit.Ignored
EXPORTALLThe EXPORTALL option controls whether all externally defined procedures and variables are exported for use by a DLL application.Ignored
EXTRNThe EXTRN option controls when EXTRNs are emitted for external entry constants.Ignored
FILEREFThe (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
FLAGThe FLAG option specifies the minimum error severity that requires a message to be included in the compiler listing.Not Supported
FLOATThe 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.)
FLOATINMATHThe 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.)
GOFFThe GOFF option instructs the compiler to produce an object file in the Generalized Object File Format (GOFF).Ignored
GONUMBERThe GONUMBER option specifies that the compiler produces additional information that enables source-program line numbers to be included in runtime messages.Ignored
GRAPHICThe GRAPHIC option specifies that the source program can contain double-byte characters.Not Supported (Editor always natively parses graphic literals.)
IGNOREThe 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
HEADERThe 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
HGPRThe HGPR option specifies whether the compiler preserves and restores the high halves of the 64-bit GPRs that it uses in a function.Ignored
INCAFTERThe INCAFTER option specifies a file to be included after a particular statement in the source program.Not Supported
INCDIRThe INCDIR option specifies a directory to add to the search path that is used to locate include files.Ignored (Supplied through property groups.)
INCLUDEThe INCLUDE option controls whether the final compiler pass processes %INCLUDE and %XINCLUDE statements.Not Supported (Includes always parsed and expanded.)
INCPDSThe 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.)
INITAUTOThe 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.)
INITBASEDThe 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.)
INITCTLThe 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.)
INITSTATICThe 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.)
INSOURCEThe 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
INTERRUPTThe INTERRUPT option causes the compiled program to respond to attention requests (interrupts).Ignored
JSONThe 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.)
LANGLVLThe LANGLVL option specifies the PL/I language level that the compiler accepts.Not Supported
LIMITSThe LIMITS option specifies various implementation limits.Not Supported
LINEDIRThe LINEDIR option specifies that the compiler accepts %LINE directives.Not Supported
LISTThe LIST option specifies that the compiler produces a pseudo-assembler listing.Ignored
LISTVIEWThe 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
LPThe 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
MACROThe MACRO option invokes the MACRO preprocessor.Supported (Sub-options CASE, FIXED, RESCAN, NAMEPREFIX are also supported.)
MAPThe MAP option specifies that the compiler produces additional information that can be used to locate static and automatic variables in dumps.Ignored
MARGINIThe 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
MARGINSThe 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
MAXBRANCHThe 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
MAXINITThe 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
MAXGENThe 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
MAXMEMWhen 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
MAXMSGThe MAXMSG option specifies the maximum number of messages of a given severity, or higher, that a compilation can produce.Not Supported
MAXNESTThe 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
MAXRUNONIFThe 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
MAXSTATICThe MAXSTATIC option causes the compiler to flag STATIC variables that exceed a specified size.Not Supported
MAXSTMTThe 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
MAXTEMPThe MAXTEMP option determines when the compiler flags statements that use an excessive amount of storage for compiler-generated temporary variables.Not Supported
MDECKThe 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
MSGSUMMARYThe MSGSUMMARY option determines whether the compiler adds a summary of all messages issued during compilation to the listing.Ignored
NAMEThe NAME option specifies that the TEXT file created by the compiler contains a NAME record.Ignored
NAMESThe NAMES option specifies the extralingual characters that are allowed in identifiers.Supported
NATLANGThe NATLANG option specifies the language that is used for compiler messages, headers, and related output.Ignored
NESTThe NEST option specifies that the listing produced by the SOURCE option indicates the block level and the DO-group level for each statement.Ignored
NOTThe NOT option specifies up to seven alternate symbols that can be used as the logical NOT operator.Supported
NULLDATEThe 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.)
OBJECTThe 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
OFFSETThe 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
OFFSETSIZEThe OFFSETSIZE option determines the size of OFFSETSIZE variables in 64-bit applications.Not Supported (Type validation and literal evaluation are not performed.)
ONSNAPFor 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
OPTIMIZEThe OPTIMIZE option specifies the type of optimization that is required.Ignored
OPTIONSThe OPTIONS option specifies that the compiler includes a list of compiler options that are used during the compilation in the compiler listing.Ignored
ORThe 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
PPThe 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.)
PPCICSThe 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.)
PPINCLUDEThe PPINCLUDE option specifies options that are passed to the INCLUDE preprocessor when it is invoked.Ignored
PPLISTThe PPLIST option controls whether the compiler retains or removes the portion of the listing that is generated by each preprocessor phase.Ignored
PPMACROThe PPMACRO option specifies options that are passed to the PPMACRO preprocessor when it is invoked.Supported
PPSQLThe PPSQL option specifies options that are passed to the SQL preprocessor.Ignored
PPTRACEThe 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
PREFIXThe 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
PRECTYPEThe 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.)
PROCEEDThe PROCEED option stops the compiler after preprocessing is completed, depending on the severity of messages that were issued by previous preprocessors.Ignored
PROCESSThe PROCESS option determines whether *PROCESS statements are allowed and, if allowed, whether they are written to the MDECK file.Not Supported
QUOTEThe QUOTE option specifies an alternate symbol that can be used as the quotation mark character.Not Supported
REDUCEThe 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
RENTCode 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
RESEXPThe 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
RESPECTThe 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.)
RTCHECKThe 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
RULESThe 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
SEMANTICThe SEMANTIC option specifies that execution of the semantic-checking stage depends on the severity of messages issued before that stage of processing.Not Supported
SERVICEThe 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
SOURCEThe 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
SPILLThe 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
STATICThe STATIC option controls whether INTERNAL STATIC variables are retained in the object module even when they are not referenced.Ignored
STDSYSThe 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
STMTThe 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
STORAGEThe STORAGE option directs the compiler to include a summary of storage usage for each procedure and BEGIN block in the compiler listing.Ignored
STRINGOFGRAPHICThe 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.)
SYNTAXThe 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
SYSPARMThe SYSPARM option specifies the value of the string that is returned by the SYSPARM macro facility built-in function.Supported
SYSTEMThe 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
TERMINALThe TERMINAL option determines whether diagnostic and informational messages that are produced during compilation are displayed on the terminal.Ignored
TESTThe 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
UNROLLThe 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
USAGEThe USAGE option enables you to select different semantics for specified built-in functions.Not Supported
WIDECHARThe WIDECHAR option specifies the format in which WIDECHAR data is stored.Not Supported (Type validation and literal evaluation are not performed.)
WINDOWThe 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.)
WRITABLEThe WRITABLE option specifies that the compiler can treat static storage as writable. If writable static storage is used, the resulting code is nonreentrant.Ignored
XINFOThe XINFO option specifies that the compiler generates additional files that contain extra information about the current compilation unit.Ignored
XMLThe 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.)
XREFThe 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
Last Updated: 9/24/26, 4:07 PM
Contributors: RUSS MAY, Esther M, phaumer
Next
IBM RSE API Plug-in for Zowe CLI commands