+ WARN_SHADOW, /**< Warn whenever a local variable shadows another local variable, parameter or global variable or whenever a built-in function is shadowed */
+ WARN_SHADOW_LOCAL,
+ WARN_SIGN_COMPARE, /**< Warn when a comparison between signed and unsigned values could produce an incorrect result when the signed value is converted to unsigned */
+ WARN_STRAY_SEMICOLON, /**< Warn about stray semicolons outside of functions */
+#if 0 // TODO
+ WARN_STRICT_ALIASING, /**< Warn about code which might break the strict aliasing rules that the compiler is using for optimization. */
+#endif
+ WARN_STRICT_PROTOTYPES, /**< Warn if a function declaration has an unspecified parameter list */
+ WARN_SWITCH_DEFAULT, /**< Warn whenever a 'switch' statement does not have a 'default' case */
+ WARN_SWITCH_ENUM, /**< Warn about 'switch' statements with an enum as index type and missing case labels or case labels outside the enum range TODO has an alias -Wswitch? */
+ WARN_TRADITIONAL, /**< Warn about certain constructs that behave differently in traditional and ISO C */
+#if 0 // TODO
+ WARN_UNDEF, /**< Warn if an undefined identifier is evaluated in an '#if' directive */
+#endif
+ WARN_UNINITIALIZED, /**< Warn if an automatic variable is used without being initialized or if a variable may be clobbered by a 'setjmp' call. */
+ WARN_UNKNOWN_PRAGMAS, /**< Warn when a #pragma directive is encountered which is not understood */
+ WARN_UNREACHABLE_CODE, /**< Warn if the compiler detects that code will never be executed */
+ WARN_UNUSED_FUNCTION, /**< Warn whenever a static function is declared but not defined or a non-inline static function is unused */
+ WARN_UNUSED_LABEL, /**< Warn whenever a label is declared but not used */
+ WARN_UNUSED_PARAMETER, /**< Warn whenever a function parameter is unused aside from its declaration */
+ WARN_UNUSED_VALUE, /**< Warn whenever a statement computes a result that is explicitly not used */
+ WARN_UNUSED_VARIABLE, /**< Warn whenever a local variable or non-constant static variable is unused aside from its declaration */
+ WARN_WRITE_STRINGS, /**< Give string constants the type 'const char[LENGTH]' so that copying the address of one into a 'char *' pointer will get a warning */