The compiler provides support for numerous extensions to the C and C++
languages. For example, it supports some GNU compiler extensions. The compiler has several
modes in which compliance with a source language is either enforced or relaxed:
- C90
Means ISO C90, together with the ARM extensions.
Use the compiler option --c90
to compile C90 code.
This is the default.
- Strict C90
Means C as defined by the 1990 C standard and addenda.
Use the compiler options --C90
--strict
to enforce strict C90 code. Because C90
is the default, you could omit --C90
.
- C99
-
Means ISO C99, together with the ARM and GNU extensions.
Use the compiler option --c99
to compile C99 code.
- Strict C99
Means C as defined by the 1999 C standard and addenda.
Use the compiler options --c99 --strict
to compile strict C99 code.
- Standard C
Means C90 or C99 as appropriate.
- C
Means any of C90, strict C90, C99, strict C99, and Standard
C.
- C++03
Means ISO C++03, excepting export templates, either with or without the ARM
extensions.
Use the compiler option --cpp
to
compile C++03 code.
Use the compiler options --cpp --cpp_compat
to
maximize binary compatibility with C++03 code compiled using older compiler versions.
- Strict C++03
Means ISO C++03, excepting export templates.
Use the compiler options --cpp --strict
to
compile strict C++03 code.
- C++11
-
Means ISO C++11, either with or without the ARM extensions.
Use the compiler option --cpp11
to
compile C++11 code.
Use the compiler options --cpp11
--cpp_compat
to compile a subset of C++11 code that maximizes compatibility
with code compiled to the C++ 2003 standard.
- Strict C++11
-
Means ISO C++11.
Use the compiler options --cpp11
--strict
to compile strict C++11 code.
- Standard C++
Means strict C++03 or strict C++11 as appropriate.
- C++
-
Means any of C++03, strict C++03, C++11, strict C++11.