| |||
| Home > Compiler Command-line Options > Command-line options > --strict_warnings | |||
Diagnostics that are errors in --strict mode
are downgraded to warnings, where possible. It is sometimes not
possible for the compiler to downgrade a strict error, for example,
where it cannot construct a legitimate program to recover.
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 if you do not use the --dollar option.
void foo(void)
{
long long i; /* okay in nonstrict C90 */
}
Compiling this code with --strict_warnings generates
a warning message.
Compilation continues, even though the expression long long is strictly illegal.