| |||
Home > Compiler Command-line Options > Command-line options > ‑‑strict_warnings |
This option enforces strict C or strict C++, depending on the choice of source language used.
The --strict_warnings
option behaves similarly
to --strict
, except that the compiler issues warning
messages in place of error messages when nonstandard features are used.
When --strict_warnings
is in force and a
violation of the relevant ISO standard occurs, the compiler normally
issues a warning message.
The severity of diagnostic messages can be controlled in the usual way.
In some cases, the compiler issues an error message instead of a warning when it detects something that is strictly illegal, and terminates the compilation. For example:
#ifdef $Super$ extern void $Super$$__aeabi_idiv0(void); /* intercept __aeabi_idiv0 */ #endif
Compiling this code with --strict_warnings
generates an error.
void foo(void) { long long i; /* okay in non-strict C90 */ }
Compiling this code with --strict_warnings
generates a warning
message.
Compilation continues, even though the expression long long is strictly illegal.