General IBM extensions
The following features are enabled by default
at all extended language levels:
| 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.
| 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:
| Language feature | Discussed in: | Individual option controls |
|---|---|---|
| Non-C99 IBM long long extension | Types of integer literals outside of C99 and C++11 |
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.
| Language feature | Discussed in: |
|---|---|
| C99 long long feature with the associated IBM extensions | Types of integer literals in C99 and C++11 |


