2.1.112. ‑‑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.
Note
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.