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
- 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
switchstatements 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
NoteSome GNU extensions are also available when you are in a nonstrict mode.
The following examples illustrate combining source language modes with language compliance modes:
Compiling a .cpp file with the command-line option
--strictcompiles Standard C++03.
Compiling a C source file with the command-line option
--gnucompiles GNU mode C90.
Compiling a .c file with the command-line options
--gnuis an error.