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.

GNU extensions

The compiler supports some GNU extensions.

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
9.6 C99 language features available in C90
9.10 C99 language features available in C++ and C90
9.15 Standard C language extensions
9.24 Standard C++ language extensions
9.32 Standard C and Standard C++ language extensions
1.7 Language compliance
9.45 GNU extensions to the C and C++ languages
Non-ConfidentialPDF file icon PDF versionARM DUI0472J
Copyright © 2010-2013 ARM. All rights reserved.