Extensions for GNU C compatibility
The following features are enabled by default at all language levels. For details about supported GCC features, see the GNU Compiler Collection online documentation at http://gcc.gnu.org/onlinedocs/.
| Language feature | Discussed in: |
|---|---|
__alignof__ operator |
GCC online documentation |
__attribute__ keyword |
Variable attributes, Function attributes |
__complex__ keyword |
GCC online documentation |
__extension__ keyword |
GCC online documentation |
__imag__ and __real__ complex type
operators |
GCC online documentation |
__int128 and unsigned __int128 types |
GCC online documentation |
__restrict__ keyword |
GCC online documentation |
__thread storage class specifier |
The __thread storage class specifier |
__typeof__ keyword |
The typeof keyword |
#include_next preprocessor directive |
The #include_next directive |
#warning preprocessor directive |
GCC online documentation |
| Alternative keywords | GCC online documentation |
asm inline assembly-language statements |
Inline assembly statements |
asm labels |
GCC online documentation |
| Complex literal suffixes | GCC online documentation |
Computed goto statements |
GCC online documentation |
| Dollar signs in identifiers | Characters in identifiers |
| FORTIFY_SOURCE | GCC online documentation |
| Function attributes | Function attributes |
| Initialization of static variables by compound literals | Compound literal expressions |
| Labels as values | GCC online documentation |
| Postfix and unary operators on complex types (increment, decrement, and complex conjugation) | GCC online documentation |
| Statements and declarations in expressions (statement expressions) | GCC online documentation |
| Static initialization of flexible array members of aggregates | Flexible array members of structures |
| Structures with flexible array members being members of another structure | Flexible array members of structures |
| Type attributes | Type attributes |
| Variable attributes | Variable attributes |
| Variadic macro extensions | Variadic macros |
| Zero-extent arrays | GCC online documentation |
The following features are enabled by default when you compile with the xlc invocation command or the -qlanglvl=extc99 | extc89 |
extc1x | extended
options.
The following features are enabled by default at all C++ language levels:
Some features can also be enabled or disabled by specific compiler options, which are listed in
the below table:
| Language feature | Discussed in: | Individual option controls |
|---|---|---|
typeof keyword |
The typeof keyword | GCC online documentation |
| Visibility function attribute1 | visibility | -fvisibility (-qvisibility) |
| Visibility variable attribute1 | The visibility variable attribute | -fvisibility (-qvisibility) |
|
Note:
|
||