Table 1 lists the new and updated XL C/C++ compiler options. See z/OS XL C/C++ User's Guide for more detailed information.
Compiler option | Release | Description | Reason for change |
---|---|---|---|
ARCH(10) | z/OS® V1R13 | New value: Produces code that uses instructions available on the 2827-xxx models for IBM® zEnterprise® EC12 (zEC12) in z/Architecture® mode. | Release update |
DEBUG(LEVEL(level)) | z/OS V2R1 | New value: Controls the amount of debug information produced. | Release update |
DSAUSER | NODSAUSER (C only) | z/OS V1R13 | New option: When DSAUSER is specified with the METAL option, a field of the size of a pointer is reserved on the stack. | Release update |
INCLUDE | NOINCLUDE | z/OS V2R1 | New option: Specifies additional header files to be included in a compilation unit. | Release update |
LANGLVL(AUTOTYPEDEDUCTION) | z/OS V1R12 | New value: When LANG(AUTOTYPEDEDUCTION) is in effect, you do not need to specify a type when declaring a variable. Instead, the compiler deduces the type of an auto variable from the type of its initializer expression. | Release update |
LANGLVL(C1XNORETURN) | z/OS V2R1 | New value: Controls whether the _Noreturn function specifier is supported. | Release update |
LANGLVL(C99COMPLEX) | z/OS V1R13 | New value: Controls whether C99 complex data types and related keywords are enabled. | Release update |
LANGLVL(C99COMPLEXHEADER) | z/OS V1R13 | New value: Controls whether the C99 complex.h header file is used. | Release update |
LANGLVL(C99LONGLONG) | z/OS V1R12 | New value: When LANG(C99LONGLONG) is in effect, the C++ compiler provides the C99 long long with IBM extensions feature. | Release update |
LANGLVL(C99PREPROCESSOR) | z/OS V1R12 | New value: When LANG(C99PREPROCESSOR) is in effect, C99 and C++0x compilers provide a common preprocessor interface, which can ease the porting of C source files to the C++ compiler and avoid preprocessor compatibility issues. | Release update |
LANGLVL(COMPATRVALUEBINDING) | z/OS V1R13 | New value: When you are porting code to IBM XL C/C++ compiler, you can specify this option to instruct the compiler to allow a non-const reference to bind to an rvalue of a user-defined type where an initializer is not required. | Release update |
LANGLVL(CONSTEXPR) | z/OS V2R1 | New value: Controls whether the generalized constant expressions feature is enabled. | Release update |
LANGLVL(DECLTYPE) | z/OS V1R12 | New value: When LANG(DECLTYPE) is in effect, decltype can be used on an expression to get the resultant type of that expression, which might be type dependent. | Release update |
LANGLVL(DEFAULTANDDELETE) | z/OS V2R1 | New value: Controls whether the defaulted and deleted functions feature is enabled. | Release update |
LANGLVL(DELEGATINGCTORS) | z/OS V1R12 | New value: When LANG(DELEGATINGCTORS) is specified, you can concentrate common initializations and post initializations in one constructor, which improves the readability and maintainability of the program. | Release update |
LANGLVL(EXPLICITCONVERSION |
z/OS V2R1 | New value: Controls whether the explicit conversion operators feature is enabled. | Release update |
LANGLVL(EXTC1X) | z/OS V2R1 | New value: Indicates that compilation is based on the C11 standard, invoking all the currently supported C11 features and other implementation-specific language extensions. | Release update |
LANGLVL(EXTENDEDINTEGERSAFE) | z/OS V1R12 | New value: With this option, if a decimal integer literal that does not have a suffix containing u or U cannot be represented by the long long int type, you can decide whether to use the unsigned long long int to represent the literal. | Release update |
LANGLVL(GNU_COMPLEX) | z/OS V1R13 | New value: Controls whether GNU complex data types and related keywords are enabled. | Release update |
LANGLVL(GNU_SUFFIXIJ) | z/OS V1R13 | New value: Controls whether support for GNU-style complex numbers is enabled. | Release update |
LANGLVL(INLINENAMESPACE) | z/OS V1R12 | New value: When you specify the LANGLVL(INLINENAMESPACE) option, members of the inline namespace can be defined and specialized as if they were also members of the enclosing namespace. | Release update |
LANGLVL(REFERENCECOLLAPSING) | z/OS V2R1 | New value: Controls whether the reference collapsing feature is enabled. | Release update |
LANGLVL(RIGHTANGLEBRACKET) | z/OS V2R1 | New value: Controls whether the right angle bracket feature is enabled. | Release update |
LANGLVL(RVALUEREFERENCES) | z/OS V2R1 | New value: Controls whether the rvalue references feature is enabled. | Release update |
LANGLVL(SCOPEDENUM) | z/OS V2R1 | New value: Controls whether the scoped enumeration feature is enabled. | Release update |
LANGLVL(STATIC_ASSERT) | z/OS V1R12 | New value: When LANGLVL(STATIC_ASSERT) is set, a severe error message for compile time assertions is issued on failure. | Release update |
LANGLVL(TEMPSASLOCALS) | z/OS V1R13 | New value: Extends the lifetime of temporaries to reduce migration difficulty. | Release update |
LANGLVL(TEXTAFTERENDIF) | z/OS V1R13 | New value: Suppresses the warning message that is emitted when you are porting code from a compiler that allows extra text after #endif or #else to IBM XL C/C++ compiler. | Release update |
LANGLVL(VARIADICTEMPLATES) | z/OS V1R12 | New value: When LANGLVL(VARIADICTEMPLATES) is set, you can define class and function templates that have any number (including zero) of parameters. | Release update |
NAMEMANGLING(zOSV1R12_ANSI) | z/OS V1R12 | New value: NAMEMANGLING(zOSV1R12_ANSI) is compatible with z/OS XL C++ V1R12 link modules that were created with NAMEMANGLING(ANSI) or #pragma namemangling(ansi). | Release update |
NAMEMANGLING(zOSV2R1_ANSI) | z/OS V2R1 | New value: NAMEMANGLING(zOSV2R1_ANSI) is compatible with z/OS XL C++ V2R1 link modules that were created with NAMEMANGLING(ANSI) or #pragma namemangling(ansi). | Release update |
SMP | NOSMP | z/OS V2R1 | New option: Enables parallelization of program code. | Release update |
STRICT(SUBSCRIPTWRAP) | z/OS V2R1 | New value: Prevents the compiler from assuming that array subscript expressions will never overflow. | Release update |
SYSSTATE (Metal C only) | z/OS V2R1 | New option: Provides additional SYSSTATE macro parameters to the SYSSTATE macro that is generated by the compiler. | Release update |
TARGET(zOSV1R12) | z/OS V1R12 | New value: TARGET(zOSV1R12) generates object code to run under z/OS Version 1 Release 12 and subsequent releases. | Release update |
TARGET(zOSV1R13) | z/OS V1R13 | New value: TARGET(zOSV1R13) generates object code to run under z/OS Version 1 Release 13 and subsequent releases. | Release update |
TARGET(zOSV2R1) | z/OS V2R1 | New value: TARGET(zOSV2R1) generates object code to run under z/OS Version 2 Release 1 and subsequent releases. | Release update |
TEMPLATEDEPTH (C++ only) | z/OS V1R13 | New option: The TEMPLATEDEPTH option specifies the maximum number of recursively instantiated template specializations that are processed by the compiler. | Release update |
THREADED | NOTHREADED | z/OS V2R1 | New option: Indicates to the compiler whether it must generate threadsafe code. | Release update |
TUNE(10) | z/OS V1R13 | New value: TUNE(10) generates code that is executable on all models, but is optimized for the 2827-xxx using IBM zEnterprise EC12 (zEC12). | Release update |