1.7 Language compliance

The compiler provides several command-line options for either enforcing or relaxing compliance with the available source languages.

Strict mode

In strict mode the compiler enforces compliance with the language standard relevant to the source language. For example, the use of //-style comments results in an error when compiling strict C90.

To compile in strict mode, use the command-line option --strict.

GNU mode

In GNU mode all the GNU compiler extensions to the relevant source language are available. For example, in GNU mode:

  • Case ranges in switch statements are available when the source language is any of C90, C99 or nonstrict C++.

  • C99-style designated initializers are available when the source language is either C90 or nonstrict C++.

To compile in GNU mode, use the compiler option --gnu.


Some GNU extensions are also available when you are in a nonstrict mode.


The following examples illustrate combining source language modes with language compliance modes:

Related reference
8.91 --gnu
8.173 --strict, --no_strict
9.45 GNU extensions to the C and C++ languages
2.7 Filename suffixes recognized by the compiler
Non-ConfidentialPDF file icon PDF versionARM DUI0472J
Copyright © 2010-2013 ARM. All rights reserved.