1.3.1. Language extensions

The language extensions supported by the compiler 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.

For more information see:

Standard C extensions

The compiler supports numerous extensions to strict C99, for example, function prototypes that override old-style non-prototype definitions. See Standard C language extensions for more information.

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. See Standard C++ language extensions for more information.

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. See Standard C and standard C++ language extensions for more information.

GNU extensions

The compiler supports some extensions offered by the GNU compiler, for example, GNU-style extended lvalues and GNU builtin functions. For more information see:

ARM-specific extensions

The compiler supports a range of extensions specific to the ARM compiler, for example, instruction intrinsics and other builtin functions. See Chapter 4 Compiler-specific Features for more information.

Copyright © 2007, 2010 ARM Limited. All rights reserved.ARM DUI 0348A
Non-Confidential