re PR other/28322 (GCC new warnings and compatibility)
2008-07-10 Peter Maydell <pmaydell@chiark.greenend.org.uk> PR other/28322 * opts.c (print_ignored_options): report postponed diagnostics for unknown -Wno-* options as warnings, not errors. (postpone_unknown_option_error): renamed to postpone_unknown_option_warning. * gcc.dg/pr28322-2.c: check that emitted diagnostic for -Wno-foobar is a warning and not an error. From-SVN: r137687
This commit is contained in:
parent
d674c8bacd
commit
15e1dac036
3 changed files with 20 additions and 7 deletions
|
@ -1,3 +1,13 @@
|
|||
2008-07-10 Peter Maydell <pmaydell@chiark.greenend.org.uk>
|
||||
|
||||
PR other/28322
|
||||
* opts.c (print_ignored_options): report postponed diagnostics for
|
||||
unknown -Wno-* options as warnings, not errors.
|
||||
(postpone_unknown_option_error): renamed to
|
||||
postpone_unknown_option_warning.
|
||||
* gcc.dg/pr28322-2.c: check that emitted diagnostic for -Wno-foobar
|
||||
is a warning and not an error.
|
||||
|
||||
2008-07-09 Doug Kwan <dougkwan@google.com>
|
||||
|
||||
Revert:
|
||||
|
|
15
gcc/opts.c
15
gcc/opts.c
|
@ -457,14 +457,17 @@ complain_wrong_lang (const char *text, const struct cl_option *option,
|
|||
|
||||
/* Buffer the unknown option described by the string OPT. Currently,
|
||||
we only complain about unknown -Wno-* options if they may have
|
||||
prevented a diagnostic. Otherwise, we just ignore them. */
|
||||
prevented a diagnostic. Otherwise, we just ignore them.
|
||||
Note that if we do complain, it is only as a warning, not an error;
|
||||
passing the compiler an unrecognised -Wno-* option should never
|
||||
change whether the compilation succeeds or fails. */
|
||||
|
||||
static void postpone_unknown_option_error(const char *opt)
|
||||
static void postpone_unknown_option_warning(const char *opt)
|
||||
{
|
||||
VEC_safe_push (const_char_p, heap, ignored_options, opt);
|
||||
}
|
||||
|
||||
/* Produce an error for each option previously buffered. */
|
||||
/* Produce a warning for each option previously buffered. */
|
||||
|
||||
void print_ignored_options (void)
|
||||
{
|
||||
|
@ -476,7 +479,7 @@ void print_ignored_options (void)
|
|||
{
|
||||
const char *opt;
|
||||
opt = VEC_pop (const_char_p, ignored_options);
|
||||
error ("unrecognized command line option \"%s\"", opt);
|
||||
warning (0, "unrecognized command line option \"%s\"", opt);
|
||||
}
|
||||
|
||||
input_location = saved_loc;
|
||||
|
@ -513,9 +516,9 @@ handle_option (const char **argv, unsigned int lang_mask)
|
|||
opt_index = find_opt (opt + 1, lang_mask | CL_COMMON | CL_TARGET);
|
||||
if (opt_index == cl_options_count && opt[1] == 'W')
|
||||
{
|
||||
/* We don't generate errors for unknown -Wno-* options
|
||||
/* We don't generate warnings for unknown -Wno-* options
|
||||
unless we issue diagnostics. */
|
||||
postpone_unknown_option_error (argv[0]);
|
||||
postpone_unknown_option_warning (argv[0]);
|
||||
result = 1;
|
||||
goto done;
|
||||
}
|
||||
|
|
|
@ -8,5 +8,5 @@ int foo (void)
|
|||
return i;
|
||||
}
|
||||
|
||||
/* { dg-message "unrecognized command line option .-Wno-foobar." "" { target *-*-* } 0 } */
|
||||
/* { dg-warning "unrecognized command line option .-Wno-foobar." "" { target *-*-* } 0 } */
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue