diff options
author | dj <dj@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-05-04 01:36:13 +0000 |
---|---|---|
committer | dj <dj@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-05-04 01:36:13 +0000 |
commit | b0932b2f71e5a3b0a2780f66e8f0e5d881a74742 (patch) | |
tree | 02e58ad626b4c528bb00fa48493c8680b37ca246 /gcc/diagnostic.c | |
parent | fd15895973887c7d54aaeef472c2eb28c319d5c0 (diff) | |
download | gcc-b0932b2f71e5a3b0a2780f66e8f0e5d881a74742.tar.gz |
* common.opt (fdiagnostics-show-option): No variable is needed.
* diagnostic.h (diagnostic_context): Add show_option_requested flag.
* diagnostic.c (diagnostic_initialize): Initialize show_option_requested.
(diagnostic_report_diagnostic): Test for enabled diagnostics here.
Save and restore original message format. Use flag in context
instead of global.
(warning): Don't test for enabled warnings here.
* opts.c (common_handle_option): Handle -fdiagnostics-show-option
here.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@99204 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/diagnostic.c')
-rw-r--r-- | gcc/diagnostic.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/gcc/diagnostic.c b/gcc/diagnostic.c index b50fb1410c4..e48133299af 100644 --- a/gcc/diagnostic.c +++ b/gcc/diagnostic.c @@ -102,6 +102,7 @@ diagnostic_initialize (diagnostic_context *context) memset (context->diagnostic_count, 0, sizeof context->diagnostic_count); context->issue_warnings_are_errors_message = true; context->warning_as_error_requested = false; + context->show_option_requested = false; context->abort_on_error = false; context->internal_error = NULL; diagnostic_starter (context) = default_diagnostic_starter; @@ -331,11 +332,17 @@ diagnostic_report_diagnostic (diagnostic_context *context, error_recursion (context); } + if (diagnostic->option_index + && ! option_enabled (diagnostic->option_index)) + return; + context->lock++; if (diagnostic_count_diagnostic (context, diagnostic)) { - if (diagnostics_show_options && diagnostic->option_index) + const char *saved_format_spec = diagnostic->message.format_spec; + + if (context->show_option_requested && diagnostic->option_index) diagnostic->message.format_spec = ACONCAT ((diagnostic->message.format_spec, " [", cl_options[diagnostic->option_index].opt_text, "]", NULL)); @@ -347,6 +354,7 @@ diagnostic_report_diagnostic (diagnostic_context *context, (*diagnostic_finalizer (context)) (context, diagnostic); pp_flush (context->printer); diagnostic_action_after_output (context, diagnostic); + diagnostic->message.format_spec = saved_format_spec; } context->lock--; @@ -424,9 +432,6 @@ warning (int opt, const char *msgid, ...) diagnostic_info diagnostic; va_list ap; - if (opt && ! option_enabled (opt)) - return; - va_start (ap, msgid); diagnostic_set_info (&diagnostic, msgid, &ap, input_location, DK_WARNING); diagnostic.option_index = opt; |