driver/101383 - handle -gtoggle in driver
authorRichard Biener <rguenther@suse.de>
Fri, 9 Jul 2021 09:13:11 +0000 (11:13 +0200)
committerRichard Biener <rguenther@suse.de>
Thu, 15 Jul 2021 05:56:08 +0000 (07:56 +0200)
The driver amends assembler options with for example --gdwarf-5
when debugging is enabled but the check for that does not consider
the effect of -gtoggle which is not handled in the common option
machinery.  The following alters debug_info_level according to
-gtoggle mimicing what process_options later does in the compiler.

This in particular avoids changing of the cc1-checksum with every
bootstrap (debug) cycle as we compute that from stage2 where we
use -g -gtoggle but with --gdwarf-5 and no debug info from the
compiler the assembler will fill the line table with the temporary
assembler file names.

2021-07-09  Richard Biener  <rguenther@suse.de>

PR driver/101383
* gcc.c (process_command): Process -gtoggle like process_options
would after parsing options.

gcc/gcc.c

index 12b3440..3e98bc7 100644 (file)
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -4927,6 +4927,16 @@ process_command (unsigned int decoded_options_count,
 #endif
     }
 
+  /* Handle -gtoggle as it would later in toplev.c:process_options to
+     make the debug-level-gt spec function work as expected.  */
+  if (flag_gtoggle)
+    {
+      if (debug_info_level == DINFO_LEVEL_NONE)
+       debug_info_level = DINFO_LEVEL_NORMAL;
+      else
+       debug_info_level = DINFO_LEVEL_NONE;
+    }
+
   if (output_file
       && strcmp (output_file, "-") != 0
       && strcmp (output_file, HOST_BIT_BUCKET) != 0)