bool declaration_after_statement:1; /* Warn when a declaration is found after a statement in a block */
bool deprecated_declarations:1; /* Warn about uses of functions, variables and types marked as deprecated by using the 'deprecated' attribute */
bool div_by_zero:1; /* Warn about compile-time integer division by zero */
+#endif
+ bool empty_statement:1; /* Warn about empty statements, i.e. lone ';' */
+#if 0 // TODO
bool endif_labels:1; /* Warn whenever an '#else' or an '#endif' are followed by text */
#endif
bool fatal_errors:1; /* First error stops the compilation */
#if 0 // TODO
bool missing_format_attribute:1; /* If '-Wformat' is enabled, also warn about functions which might be candidates for 'format' attributes */
bool missing_noreturn:1; /* Warn about functions which might be candidates for attribute 'noreturn' */
+#endif
bool missing_prototypes:1; /* Warn if a global function is defined without a previous prototype declaration */
+#if 0 // TODO
bool multichar:1; /* Warn if a multicharacter constant ('FOOF') is used. */
bool nested_externs:1; /* Warn if an 'extern' declaration is encountered within a function */
bool packed:1; /* Warn if a structure is given the packed attribute, but the packed attribute has no effect on the layout or size of the structure */
bool strict_aliasing:1; /* Warn about code which might break the strict aliasing rules that the compiler is using for optimization. */
#endif
bool strict_prototypes:1; /* warn if a function declaration has an unspecified parameter list */
-#if 0 // TODO
bool switch_default:1; /* Warn whenever a 'switch' statement does not have a 'default' case */
+#if 0 // TODO
bool switch_enum:1; /* 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? */
bool traditional:1; /* Warn about certain constructs that behave differently in traditional and ISO C */
bool undef:1; /* Warn if an undefined identifier is evaluated in an '#if' directive */
bool uninitialized:1; /* Warn if an automatic variable is used without being initialized or if a variable may be clobbered by a 'setjmp' call. */
- bool unknown_pragmas:1; /* Warn when a #pragma directive is encountered which is not understood by GCC */
+#endif
+ bool unknown_pragmas:1; /* Warn when a #pragma directive is encountered which is not understood */
+#if 0 // TODO
bool unreachable_code:1; /* Warn if the compiler detects that code will never be executed */
bool unused_function:1; /* Warn whenever a static function is declared but not defined or a non-inline static function is unused */
bool unused_label:1; /* Warn whenever a label is declared but not used */
bool unused_parameter:1; /* Warn whenever a function parameter is unused aside from its declaration */
bool unused_variable:1; /* Warn whenever a local variable or non-constant static variable is unused aside from its declaration */
+#endif
bool unused_value:1; /* Warn whenever a statement computes a result that is explicitly not used */
+#if 0 // TODO
bool write_strings:1; /* Give string constants the type 'const char[LENGTH]' so that copying the address of one into a 'char *' pointer will get a warning */
#endif
} warning_t;