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.