public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH] Improve wording for -freport-bug option.
@ 2022-01-27 10:37 Martin Liška
  2022-01-27 10:47 ` Jakub Jelinek
  0 siblings, 1 reply; 6+ messages in thread
From: Martin Liška @ 2022-01-27 10:37 UTC (permalink / raw)
  To: gcc-patches; +Cc: Richard Biener, Jakub Jelinek

Hi.

The patch addresses a few things related to ICE report:

- 'Internal compiler error: Error reporting routines re-entered.' - unify 'internal' wording
- I shortened:

'''
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://bugs.opensuse.org/> for instructions.
'''

- let's recommend using -freport-bug.

Now one can see:

$ ./xgcc -B. ~/Programming/testcases/pr100019.C -c
...
Please submit a full bug report, with preprocessed source (by using -freport-bug) and the complete backtrace.
See <https://gcc.gnu.org/bugs/> for instructions.

$ ./xgcc -B. ~/Programming/testcases/pr100019.C -c -freport-bug
...
Please submit a full bug report, with preprocessed source and the complete backtrace.
See <https://gcc.gnu.org/bugs/> for instructions.
Preprocessed source stored into /tmp/ccLgekCL.out file, please attach this to your bugreport.

Ready to be installed?
Thanks,
Martin


	PR web/104254

gcc/ChangeLog:

	* diagnostic.cc (diagnostic_initialize):
	Initialize report_bug flag.
	(diagnostic_action_after_output):
	Explain that -freport-bug option can be used for pre-processed
	file creation.  Make the message shorter.
	(error_recursion): Rename Internal to internal.
	* diagnostic.h (struct diagnostic_context): New field.
	* opts.cc (common_handle_option): Init the field here.
---
  gcc/diagnostic.cc | 20 +++++++++++---------
  gcc/diagnostic.h  |  3 +++
  gcc/opts.cc       |  4 ++++
  3 files changed, 18 insertions(+), 9 deletions(-)

diff --git a/gcc/diagnostic.cc b/gcc/diagnostic.cc
index f5f43d5e9a7..7acdee49551 100644
--- a/gcc/diagnostic.cc
+++ b/gcc/diagnostic.cc
@@ -219,6 +219,8 @@ diagnostic_initialize (diagnostic_context *context, int n_opts)
    context->show_line_numbers_p = false;
    context->min_margin_width = 0;
    context->show_ruler_p = false;
+  context->report_bug = false;
+
    if (const char *var = getenv ("GCC_EXTRA_DIAGNOSTIC_OUTPUT"))
      {
        if (!strcmp (var, "fixits-v1"))
@@ -665,12 +667,12 @@ diagnostic_action_after_output (diagnostic_context *context,
  	if (context->abort_on_error)
  	  real_abort ();
  
-	fnotice (stderr, "Please submit a full bug report,\n"
-		 "with preprocessed source if appropriate.\n");
-	if (count > 0)
-	  fnotice (stderr,
-		   ("Please include the complete backtrace "
-		    "with any bug report.\n"));
+	const char *details
+	  = context->report_bug ? "" : "(by using -freport-bug) ";
+	const char *ending = count > 0  ? "and the complete backtrace" : "";
+
+	fnotice (stderr, "\nPlease submit a full bug report, "
+		 "with preprocessed source %s%s.\n", details, ending);
  	fnotice (stderr, "See %s for instructions.\n", bug_report_url);
  
  	exit (ICE_EXIT_CODE);
@@ -1437,8 +1439,8 @@ num_digits (int value)
  
  /* Given a partial pathname as input, return another pathname that
     shares no directory elements with the pathname of __FILE__.  This
-   is used by fancy_abort() to print `Internal compiler error in expr.cc'
-   instead of `Internal compiler error in ../../GCC/gcc/expr.cc'.  */
+   is used by fancy_abort() to print `internal compiler error in expr.cc'
+   instead of `internal compiler error in ../../GCC/gcc/expr.cc'.  */
  
  const char *
  trim_filename (const char *name)
@@ -1988,7 +1990,7 @@ error_recursion (diagnostic_context *context)
      pp_newline_and_flush (context->printer);
  
    fnotice (stderr,
-	   "Internal compiler error: Error reporting routines re-entered.\n");
+	   "internal compiler error: Error reporting routines re-entered.\n");
  
    /* Call diagnostic_action_after_output to get the "please submit a bug
       report" message.  */
diff --git a/gcc/diagnostic.h b/gcc/diagnostic.h
index ccaa33b5817..3ca32979dde 100644
--- a/gcc/diagnostic.h
+++ b/gcc/diagnostic.h
@@ -340,6 +340,9 @@ struct diagnostic_context
       source output.  */
    bool show_ruler_p;
  
+  /* True if -freport-bug option is used.  */
+  bool report_bug;
+
    /* Used to specify additional diagnostic output to be emitted after the
       rest of the diagnostic.  This is for implementing
       -fdiagnostics-parseable-fixits and GCC_EXTRA_DIAGNOSTIC_OUTPUT.  */
diff --git a/gcc/opts.cc b/gcc/opts.cc
index f21c821ab2e..7d30deb8e4b 100644
--- a/gcc/opts.cc
+++ b/gcc/opts.cc
@@ -3158,6 +3158,10 @@ common_handle_option (struct gcc_options *opts,
  	dc->tabstop = value;
        break;
  
+    case OPT_freport_bug:
+      dc->report_bug = value;
+      break;
+
      default:
        /* If the flag was handled in a standard way, assume the lack of
  	 processing here is intentional.  */
-- 
2.34.1


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2022-01-27 11:49 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-27 10:37 [PATCH] Improve wording for -freport-bug option Martin Liška
2022-01-27 10:47 ` Jakub Jelinek
2022-01-27 10:59   ` Martin Liška
2022-01-27 11:06     ` Jakub Jelinek
2022-01-27 11:38       ` Martin Liška
2022-01-27 11:49         ` Jakub Jelinek

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).