1.6 Language extensions

The compiler supports numerous extensions to its various source languages.

These language extensions are categorized as follows:
C99 features
The compiler makes some language features of C99 available:
  • As extensions to strict C90, for example, //-style comments.
  • As extensions to both Standard C++ and strict C90, for example, restrict pointers.
Standard C extensions
The compiler supports numerous extensions to strict C99, for example, function prototypes that override old-style nonprototype definitions.
These extensions to Standard C are also available in C90.
Standard C++ extensions
The compiler supports numerous extensions to strict C++, for example, qualified names in the declaration of class members.
These extensions are not available in either Standard C or C90.
Standard C and Standard C++ extensions
The compiler supports some extensions specific to strict C++ and strict C90, for example, anonymous classes, structures, and unions.
ARM-specific extensions
The compiler supports a range of extensions specific to the ARM compiler, for example, instruction intrinsics and other built-in functions.
Related reference
8.6 C99 language features available in C90
8.10 C99 language features available in C++ and C90
8.15 Standard C language extensions
8.24 Standard C++ language extensions
8.32 Standard C and Standard C++ language extensions
1.7 Language compliance
Non-ConfidentialPDF file icon PDF versionARM DUI0375E
Copyright © 2007, 2008, 2011, 2012, 2014 ARM. All rights reserved.