From 0d43e6057b31caf96daa30d2dd3c07932b2c461a Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Fri, 21 Sep 2012 09:15:45 +0200 Subject: [PATCH] Revert "introduced a GCC-like -Werror=type" This reverts commit 981c53e257f1974854edc4f6ad0e88c7f18e2bea. --- src/complain.c | 19 +++++-------- src/complain.h | 11 ++------ src/conflicts.c | 6 ++--- src/getargs.c | 72 ++++++++++++++----------------------------------- 4 files changed, 31 insertions(+), 77 deletions(-) diff --git a/src/complain.c b/src/complain.c index 8ebd1fb8..d79a2502 100644 --- a/src/complain.c +++ b/src/complain.c @@ -31,7 +31,6 @@ warnings warnings_flag = Wconflicts_sr | Wconflicts_rr | Wdeprecated | Wother; -warnings errors_flag; bool complaint_issued; static unsigned *indent_ptr = 0; @@ -56,9 +55,7 @@ warnings_print_categories (warnings warn_flags) for (i = 0; i < ARRAY_CARDINALITY (warn_names); ++i) if (warn_flags & 1 << i) { - bool err = warn_flags & errors_flag; - fprintf (stderr, "%s-W", any ? ", " : " ["); - fprintf (stderr, "%s%s", err ? "error=" : "" , warn_names[i]); + fprintf (stderr, "%s-W%s", any ? ", " : " [", warn_names[i]); any = true; } if (any) @@ -142,16 +139,14 @@ complains (const location *loc, warnings flags, const char *message, } else if (warnings_flag & Wyacc) { - char* severity = Wyacc & errors_flag ? _("error") : _("warning"); - set_warning_issued (Wyacc); - error_message (loc, flags, severity, message, args); + set_warning_issued (); + error_message (loc, flags, _("warning"), message, args); } } else if (warnings_flag & flags) { - char* severity = flags & errors_flag ? _("error") : _("warning"); - set_warning_issued (flags); - error_message (loc, flags, severity, message, args); + set_warning_issued (); + error_message (loc, flags, _("warning"), message, args); } } @@ -189,10 +184,10 @@ void complain_at_indent (location loc, warnings flags, unsigned *indent, `--------------------------------*/ void -set_warning_issued (warnings warning) +set_warning_issued (void) { static bool warning_issued = false; - if (!warning_issued && (warning & warnings_flag & errors_flag)) + if (!warning_issued && (warnings_flag & Werror)) { fprintf (stderr, "%s: warnings being treated as errors\n", program_name); complaint_issued = true; diff --git a/src/complain.h b/src/complain.h index bdf6bfcd..44be293d 100644 --- a/src/complain.h +++ b/src/complain.h @@ -35,23 +35,16 @@ typedef enum Wdeprecated = 1 << 4, /**< Obsolete constructs. */ Wother = 1 << 5, /**< All other warnings. */ - /* Deprecated, this option now uses a second instance of this enum */ Werror = 1 << 10, /**< Warnings are treated as errors. */ - complaint = 1 << 11, /**< All complaints. */ fatal = 1 << 12, /**< All fatal errors. */ silent = 1 << 13, /**< Do not display the warning type. */ - - /**< All above warnings. */ - Wall = ~complaint & ~fatal & ~silent + Wall = ~Werror /**< All above warnings. */ } warnings; /** What warnings are issued. */ extern warnings warnings_flag; -/** What warnings are made errors. */ -extern warnings errors_flag; - /** Display a "[-Wyacc]" like message on stderr. */ void warnings_print_categories (warnings warn_flags); @@ -60,7 +53,7 @@ void warnings_print_categories (warnings warn_flags); only for the sake of Yacc-compatible conflict reports in conflicts.c. All other warnings should be implemented in complain.c and should use the normal warning format. */ -void set_warning_issued (warnings warning); +void set_warning_issued (void); /** Make a complaint, but don't specify any location. */ void complain (warnings flags, char const *message, ...) diff --git a/src/conflicts.c b/src/conflicts.c index 105c5ceb..989dfc25 100644 --- a/src/conflicts.c +++ b/src/conflicts.c @@ -602,10 +602,8 @@ conflicts_print (void) } if (src_total | rrc_total) { - if (expected_sr_conflicts == -1 && src_total) - set_warning_issued (Wconflicts_sr); - if (expected_rr_conflicts == -1 && rrc_total) - set_warning_issued (Wconflicts_rr); + if (expected_sr_conflicts == -1 && expected_rr_conflicts == -1) + set_warning_issued (); if (! yacc_flag) fprintf (stderr, "%s: ", current_file); conflict_report (stderr, src_total, rrc_total); diff --git a/src/getargs.c b/src/getargs.c index b0a6601a..74be4101 100644 --- a/src/getargs.c +++ b/src/getargs.c @@ -83,63 +83,31 @@ flags_argmatch (const char *option, int all, int *flags, char *args) { if (args) - { - args = strtok (args, ","); - - /* Not sure whether we should keep this : -Werror=no-bar */ - int no = STRPREFIX_LIT ("no-", args) ? 3 : 0; - args += no; - int value = 0; - - while (args) { - int err = STRPREFIX_LIT ("error", args); - if (err) - args += (args[5] == '=') ? 6 : 5; - - if (!err || args[-1] == '=') - value = XARGMATCH (option, args, keys, values); - if (value == 0) - { - if (no) - { - if (err) - /* Using &= ~all activates complaint, silent and fatal */ - errors_flag = Wnone; - else - *flags |= all; - } - else - { - if (err) - errors_flag |= all; - else - *flags &= ~all; - } - } - else - { - if (no) + args = strtok (args, ","); + while (args) { - if (err) - errors_flag &= ~value; + int no = STRPREFIX_LIT ("no-", args) ? 3 : 0; + int value = XARGMATCH (option, args + no, keys, values); + if (value == 0) + { + if (no) + *flags |= all; + else + *flags &= ~all; + } else - *flags &= ~value; + { + if (no) + *flags &= ~value; + else + *flags |= value; + } + args = strtok (NULL, ","); } - else - { - if (err) - { - errors_flag |= value; - warnings_flag |= value; - } - else - *flags |= value; - } - } - args = strtok (NULL, ","); } - } + else + *flags |= all; } /** Decode a set of sub arguments. -- 2.45.2