https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79129
Bug ID: 79129 Summary: [7 Regression] ICE with -fdebug-types-section starting with r240578 Product: gcc Version: 7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: jakub at gcc dot gnu.org Target Milestone: --- struct B { struct A { void foo (int &); }; A *foo (); ~B () { int a = 1; foo ()->foo (a); } }; struct C { ~C (); B c; }; C::~C () {} (reduced from libstdc++ ios_failure.cc) ICEs with -g -O2 -fdebug-types-section and is not fixed by the PR78835 patch, resolve_addr doesn't recreate any kind of die in that case, but break_out_comdat_types seems to incorrectly move the B::A::foo DW_TAG_subprogram into the .debug_types unit where it can't be referenced from the main CU.