1.3 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.

Non-ConfidentialPDF file icon PDF versionARM DUI0472M
Copyright © 2010-2016 ARM Limited or its affiliates. All rights reserved.