diff mbox series

Fix PR91772

Message ID nycvar.YFH.7.76.1909171550100.5566@zhemvz.fhfr.qr
State New
Headers show
Series Fix PR91772 | expand

Commit Message

Richard Biener Sept. 17, 2019, 1:51 p.m. UTC
When early debug is missing at LTRANS time we create DIEs using
full-blown dwarf2out_decl.  In that case it doesn't make sense
to try adding a location again, instead that might ICE as seen
in the PR.

Bootstrapped / tested on x86_64-unknown-linux-gnu, applied to trunk sofar.

Richard.

2019-09-17  Richard Biener  <rguenther@suse.de>

	PR debug/91772
	* dwarf2out.c (dwarf2out_late_global_decl): If early dwarf
	was missing generate locations only once.
diff mbox series

Patch

Index: gcc/dwarf2out.c
===================================================================
--- gcc/dwarf2out.c	(revision 275800)
+++ gcc/dwarf2out.c	(working copy)
@@ -26647,16 +26651,12 @@  dwarf2out_late_global_decl (tree decl)
     {
       dw_die_ref die = lookup_decl_die (decl);
 
-      /* We may have to generate early debug late for LTO in case debug
+      /* We may have to generate full debug late for LTO in case debug
          was not enabled at compile-time or the target doesn't support
 	 the LTO early debug scheme.  */
       if (! die && in_lto_p)
-	{
-	  dwarf2out_decl (decl);
-	  die = lookup_decl_die (decl);
-	}
-
-      if (die)
+	dwarf2out_decl (decl);
+      else if (die)
 	{
 	  /* We get called via the symtab code invoking late_global_decl
 	     for symbols that are optimized out.