Unsupported compiler macros
IBM® Open XL C/C++ for AIX® 17.1.2 is based on the community Clang 14.0.0 compiler. To process programs consistently with Clang, IBM Open XL C/C++ for AIX 17.1.2 no longer supports compiler macros that are described in this section.
- Macros to identify the XL C/C++ compiler
- __IBMC__
- __IBMCPP__
- __ibmxl__
- __ibmxl_modification__
- __ibmxl_ptf_fix_level__
- __ibmxl_release__
- __ibmxl_version__
- __ibmxl_vrm__
- __xlc__
- __xlC__
- __xlC_ver__
- Macros related to compiler option settings
- __DEBUG_ALLOC__
- __IBM_DFP__
- __IBM_DFP_SW_EMULATION__
- __IBM_GCC_ASM
- __IBM_STDCPP_ASM
- __IBM_UTF_LITERAL
- __IGNERRNO__
- __INITAUTO__
- __INITAUTO_W__
- __LIBANSI__
- __LONGDOUBLE128
- __NO_RTTI__
- __OBJECT_MODEL_CLASSIC__
- __OBJECT_MODEL_IBM__
- __RTTI_ALL__
- __TEMPINC__
- _CHAR_SIGNED, __CHAR_SIGNED__
- _CHAR_UNSIGNED
- _IBMSMP
Note: _CHAR_UNSIGNED_ remains defined in IBM Open XL C/C++ for AIX 17.1.2. - Macros related to architecture settings
- _ARCH_COM
- _ARCH_PPC64GR
- _ARCH_PPC64GRSQ
- _ARCH_PPC64V
- _ARCH_PPC970
- _ARCH_PWR6E
- _ARCH_PWR6X
- Macros related to language levels
- __BOOL__
- __C99__FUNC__
- __C99_BOOL
- __C99_COMPLEX
- __C99_COMPLEX_HEADER__
- __C99_COMPOUND_LITERAL
- __C99_CPLUSCMT
- __C99_DESIGNATED_INITIALIZER
- __C99_DUP_TYPE_QUALIFIER
- __C99_EMPTY_MACRO_ARGUMENTS
- __C99_FLEXIBLE_ARRAY_MEMBER
- __C99_HEX_FLOAT_CONST
- __C99_INLINE
- __C99_LLONG
- __C99_MACRO_WITH_VA_ARGS
- __C99_MAX_LINE_NUMBER
- __C99_MIXED_DECL_AND_CODE
- __C99_MIXED_STRING_CONCAT
- __C99_NON_CONST_AGGR_INITIALIZER
- __C99_NON_LVALUE_ARRAY_SUB
- __C99_PRAGMA_OPERATOR
- __C99_REQUIRE_FUNC_DECL
- __C99_RESTRICT
- __C99_STATIC_ARRAY_SIZE
- __C99_STD_PRAGMAS
- __C99_TGMATH
- __C99_UCN
- __C99_VAR_LEN_ARRAY
- __C99_VARIABLE_LENGTH_ARRAY
- __DIGRAPHS__
- __EXTENDED__
- __IBM__ALIGN
- __IBM__ALIGNOF__
- __IBM_ALIGNOF__
- __IBM_ATTRIBUTES
- __IBM_COMPUTED_GOTO
- __IBM_DOLLAR_IN_ID
- __IBM_EXTENSION_KEYWORD
- __IBM_GCC__INLINE__
- __IBM_GENERALIZED_LVALUE
- __IBM_INCLUDE_NEXT
- __IBM_LABEL_VALUE
- __IBM_LOCAL_LABEL
- __IBM_MACRO_WITH_VA_ARGS
- __IBM_NESTED_FUNCTION
- __IBM_PP_PREDICATE
- __IBM_PP_WARNING
- __IBM_REGISTER_VARS
- __IBM__TYPEOF__
- __IBMC_COMPLEX_INIT
- __IBMC_GENERIC
- __IBMC_NORETURN
- __IBMC_STATIC_ASSERT
- __IBMCPP_AUTO_TYPEDEDUCTION
- __IBMCPP_C99_LONG_LONG
- __IBMCPP_C99_PREPROCESSOR
- __IBMCPP_COMPLEX_INIT
- __IBMCPP_CONSTEXPR
- __IBMCPP_DECLTYPE
- __IBMCPP_DEFAULTED_AND_DELETED_FUNCTIONS
- __IBMCPP_DELEGATING_CTORS
- __IBMCPP_EXPLICIT_CONVERSION_OPERATORS
- __IBMCPP_EXTENDED_FRIEND
- __IBMCPP_EXTERN_TEMPLATE
- __IBMCPP_INLINE_NAMESPACE
- __IBMCPP_NULLPTR
- __IBMCPP_REFERENCE_COLLAPSING
- __IBMCPP_RIGHT_ANGLE_BRACKET
- __IBMCPP_RVALUE_REFERENCES
- __IBMCPP_SCOPED_ENUM
- __IBMCPP_STATIC_ASSERT
- __IBMCPP_VARIADIC_TEMPLATES
- __SAA__
- __SAA_L2__
The __ibmxl family macros are no longer supported. Instead, the
__open_xl family macros are newly added to identify the Open XL C/C++ compiler.
Using macros to query the support of individual language features is no longer supported. You need to write source code to target language standards.