GNU, Clang, and ACLE Language Extensions

The GNU compiler collection (GCC) defines a number of language features not found in the ANSI/ISO C and C++ standards. The definition and examples of these extensions (for GCC version 4.7) can be found at the GNU web site, https://gcc.gnu.org/onlinedocs/gcc-4.7.2/gcc/C-Extensions.html#C-Extensions. Most of these extensions are also available for C++ source code.

The compiler also supports the following Clang macro extensions, which are described in the Clang 6 Documentation:

In addition, the compiler supports many of the features described in the ARM C Language Extensions (ACLE) specification. These features are applicable for the Cortex-M and Cortex-R processor variants. ACLE support affects the pre-defined macros (Table 2-31), function attributes (Section 5.17.2), and intrinsics (Section 5.14) you may use in C/C++ code. These features are implemented in order to support the development of source code that can be compiled using ACLE-compliant compilers from multiple vendors for a variety of ARM processors.