https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81936
--- Comment #14 from rguenther at suse dot de <rguenther at suse dot de> --- On August 23, 2017 6:52:40 PM GMT+02:00, "vries at gcc dot gnu.org" <gcc-bugzi...@gcc.gnu.org> wrote: >https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81936 > >--- Comment #13 from Tom de Vries <vries at gcc dot gnu.org> --- >I've tried to see if I could workaround the problem by disabling the >assert: >... >diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c >index 0c339bd46f0..b2df3b89c2e 100644 >--- a/gcc/dwarf2out.c >+++ b/gcc/dwarf2out.c >@@ -5538,9 +5538,12 @@ dwarf2out_die_ref_for_decl (tree decl, const >char **sym, > while (die->die_parent) > die = die->die_parent; > /* For the containing CU DIE we compute a die_symbol in >- compute_comp_unit_symbol. */ >+ compute_comp_unit_symbol. >+ TODO: Remove flag_generate_offload from assert condition, and fix >+ fallout (PR81936). >+ */ > gcc_assert (die->die_tag == DW_TAG_compile_unit >- && die->die_id.die_symbol != NULL); >+ && (die->die_id.die_symbol != NULL || >flag_generate_offload)); > *sym = die->die_id.die_symbol; > return true; > } >... > >That worked for pr66714.c, but for all other ICE-ing test-cases I run >into >another ICE, now in mkoffload: >... > else > { > /* Pickle stray references. */ > t = lto_input_tree_1 (&ib_main, data_in, tag, 0); > gcc_assert (t && data_in->reader_cache->nodes.length () == from); > } >... That looks odd, I'll see if I can reproduce tomorrow.