Implement -Wmain.
[cparser] / warning.h
index df36717..4bacbb5 100644 (file)
--- a/warning.h
+++ b/warning.h
@@ -19,6 +19,9 @@ typedef struct warning_t {
        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 */
@@ -30,14 +33,18 @@ typedef struct warning_t {
 #if 0 // TODO
        bool inline:1;                        /* Warn if a function can not be inlined and it was declared as inline */
        bool long_long:1;                     /* Warn if 'long long' type is used */
+#endif
        bool main:1;                          /* Warn if the type of 'main' is suspicious */
+#if 0 // TODO
        bool missing_braces:1;                /* Warn if an aggregate or union initializer is not fully bracketed */
 #endif
        bool missing_declarations:1;          /* Warn if a global function is defined without a previous declaration */
 #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 */
@@ -57,13 +64,15 @@ typedef struct warning_t {
        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 */