Keil™, An ARM® Company

RealView Compiler Reference Guide

Language extensions

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 ARM Limited. All rights reserved.ARM DUI 0376A