debug/94450 - remove DW_TAG_imported_unit generated in LTRANS units

Message ID nycvar.YFH.7.76.2004021646480.830@zhemvz.fhfr.qr
State New
Headers show
Series
  • debug/94450 - remove DW_TAG_imported_unit generated in LTRANS units
Related show

Commit Message

Richard Biener April 2, 2020, 2:47 p.m.
This removes the DW_TAG_imported_unit we generate for each referenced
early debug unit in LTRANS units.  They are more harmful than they
do good and the semantics can be read in a way making it even wrong.

LTO bootstrapped and tested on x86_64-unknown-linux-gnu, applied.

Richard.

2020-04-02  Richard Biener  <rguenther@suse.de>

	PR debug/94450
	* dwarf2out.c (dwarf2out_early_finish): Remove code emitting
	DW_TAG_imported_unit.
---
 gcc/dwarf2out.c | 18 ------------------
 1 file changed, 18 deletions(-)

-- 
2.12.3

Patch

diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index 378a27394e8..d68367eee3e 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -32040,24 +32040,6 @@  dwarf2out_early_finish (const char *filename)
      sure to adjust the phase after annotating the LTRANS CU DIE.  */
   if (in_lto_p)
     {
-      /* Force DW_TAG_imported_unit to be created now, otherwise
-	 we might end up without it or ordered after DW_TAG_inlined_subroutine
-	 referencing DIEs from it.  */
-      if (! flag_wpa && flag_incremental_link != INCREMENTAL_LINK_LTO)
-	{
-	  unsigned i;
-	  tree tu;
-	  if (external_die_map)
-	    FOR_EACH_VEC_SAFE_ELT (all_translation_units, i, tu)
-	      if (sym_off_pair *desc = external_die_map->get (tu))
-		{
-		  dw_die_ref import = new_die (DW_TAG_imported_unit,
-					       comp_unit_die (), NULL_TREE);
-		  add_AT_external_die_ref (import, DW_AT_import,
-					   desc->sym, desc->off);
-		}
-	}
-
       early_dwarf_finished = true;
       if (dump_file)
 	{