| |||
| Home > ARM Compiler Reference > GNU extensions to the ARM compiler | |||
This section describes the GNU compiler extensions that are
supported by the ARM compiler. These extensions are supported when
you run the compiler with the --gnu option. However,
some extensions are also supported when you run the compiler without
this option. These compilation modes are referred to in this document
as:
The
default mode. That is, compilations without the --gnu option.
Compilations
with the --gnu option.
Table 3.4 lists the GNU extensions that are supported by the ARM compiler, and the mode and language in which they are supported.
Table 3.4. Supported GNU extensions
| GNU extension | Supported mode | Supported language | Notes |
|---|---|---|---|
| Alignment | GNU, ARM | C, C++ | - |
| Alternate keywords | GNU | C, C++ | - |
| Assembler labels | GNU | C, C++ | - |
| Attribute syntax | GNU, ARM | C, C++ | The |
| Builtin functions | GNU | C, C++ | - |
| C++ comments | GNU, ARM | C, C++ | - |
| Case ranges | GNU | C, C++ | - |
| Cast of a union | GNU | C only | - |
| Character escapes | GNU | C, C++ | - |
| Compound literals | GNU | C only | - |
| Conditionals | GNU | C only | - |
| Designated inits | GNU | C, C++ | - |
| Dollar signs | GNU | C, C++ | - |
| Function attributes | GNU, ARM | C, C++ | - |
| Function names | GNU, ARM | C only | - |
| Function prototypes | GNU | C only | - |
| Hex floats | GNU | C, C++ | - |
| Incomplete enums | GNU, ARM | C, C++ | - |
| Initializers | GNU | C, C++ | - |
| Inline | GNU, ARM | C, C++ | - |
| Local labels | GNU | C, C++ | - |
| Long long | GNU, ARM | C, C++ | - |
| Lvalues | GNU | C, C++ | - |
| Multiline strings | GNU | C, C++ | - |
| Pointer arithmetic | GNU | C, C++ | - |
| Return and frame addresses | GNU | C, C++ | - |
| Statement expressions | GNU | C, C++ | - |
| Subscripting struct | GNU, ARM | C, C++ | - |
| Type attributes | GNU, ARM | C, C++ | The |
| typeof | GNU | C, C++ | - |
| Unnamed fields | GNU | C, C++ | - |
| Variable attributes | GNU, ARM | C, C++ | The |
| Variadic macros | GNU, ARM | C, C++ | - |
| Zero length arrays | GNU | C, C++ | - |
For more details on the use of these extensions, see the GNU
compiler documentation. You can access this documentation online
at http://gcc.gnu.org.