lto/106334 - fix previous fix wrt -flto-partition=none

Message ID 20220802063534.259FB3852765@sourceware.org
State New, archived
Headers
Series lto/106334 - fix previous fix wrt -flto-partition=none |

Commit Message

Richard Biener Aug. 2, 2022, 6:34 a.m. UTC
  This adjusts the assert guard to include -flto-partition=none which
behaves as WPA.

Bootstrapped & tested on x86_64-unknown-linux-gnu, pushed.

	PR lto/106334
	* dwarf2out.cc (dwarf2out_register_external_die): Adjust
	assert.
---
 gcc/dwarf2out.cc | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)
  

Patch

diff --git a/gcc/dwarf2out.cc b/gcc/dwarf2out.cc
index 3ac39c1a5b0..cfea9cf6451 100644
--- a/gcc/dwarf2out.cc
+++ b/gcc/dwarf2out.cc
@@ -6069,11 +6069,12 @@  dwarf2out_register_external_die (tree decl, const char *sym,
 
   if (!external_die_map)
     external_die_map = hash_map<tree, sym_off_pair>::create_ggc (1000);
-  /* When we do tree merging during WPA we can end up re-using GC memory
-     as there's currently no way to unregister external DIEs.  Ideally
-     we'd register them only after merging finished but allowing override
-     here is easiest.  See PR106334.  */
-  gcc_checking_assert (flag_wpa || !external_die_map->get (decl));
+  /* When we do tree merging during WPA or with -flto-partition=none we
+     can end up re-using GC memory as there's currently no way to unregister
+     external DIEs.  Ideally we'd register them only after merging finished
+     but allowing override here is easiest.  See PR106334.  */
+  gcc_checking_assert (!(in_lto_p && !flag_wpa)
+		       || !external_die_map->get (decl));
   sym_off_pair p = { IDENTIFIER_POINTER (get_identifier (sym)), off };
   external_die_map->put (decl, p);
 }