+2005-05-03 DJ Delorie <dj@redhat.com>
+
+ * 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.
+
2005-05-04 Kelley Cook <kcook@gcc.gnu.org>
* config/m32r/xm-m32r.h: Don't define HOST_WORDS_BIG_ENDIAN.
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;
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));
(*diagnostic_finalizer (context)) (context, diagnostic);
pp_flush (context->printer);
diagnostic_action_after_output (context, diagnostic);
+ diagnostic->message.format_spec = saved_format_spec;
}
context->lock--;
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;
/* True if it has been requested that warnings be treated as errors. */
bool warning_as_error_requested;
+ /* True if we should print the command line option which controls
+ each diagnostic, if known. */
+ bool show_option_requested;
+
/* True if we should raise a SIGABRT on errors. */
bool abort_on_error;