General IBM extensions

The following features are enabled by default at all extended language levels:
Table 1. General IBM extensions
Language feature Discussed in:
Allowed types in typedef definitions typedef definitions
Extended types allowed in bit field structure members Bit field members
The following features are disabled by default at all language levels. It also can be enabled or disabled by an individual option.
Table 2. General IBM extensions with individual option controls
Language feature Discussed in: Individual option controls
__static_assert keyword Keywords for language extensions (IBM extension) -q[no]keyword=__static_assert
Extra text after #endif or #else Extension of #endif and #else (IBM extension) -qlanglvl=[no]textafterendif
The following feature is enabled by default with the xlc, xlc++, xlC, cc and c99 invocation commands when the extc99, stdc99, or extc1x language level is not in effect. It can also be enabled or disabled by a specific compiler option, listed in the following table:
Table 3. General IBM extensions with individual option controls
Language feature Discussed in: Individual option controls
Non-C99 IBM long long extension Types of integer literals outside of C99 and C++11

-q[no]longlong

The following feature is enabled by default with the xlc, xlc++, xlC, cc and c99 invocation commands when the extc99, stdc99, or extc1x language level is in effect.
Table 4. General IBM extensions
Language feature Discussed in:
C99 long long feature with the associated IBM extensions Types of integer literals in C99 and C++11


Voice your opinion on getting help information Ask IBM compiler experts a technical question in the IBM XL compilers forum Reach out to us