https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88049
Bug ID: 88049 Summary: [7/8/9 Regression] ICE in lto_symtab_prevailing_virtual_decl at gcc/lto/lto-symtab.c:1075 since r231671 Product: gcc Version: 9.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: lto Assignee: unassigned at gcc dot gnu.org Reporter: marxin at gcc dot gnu.org CC: hubicka at gcc dot gnu.org, marxin at gcc dot gnu.org Target Milestone: --- Following is causing ICE: $ cat test.ii template <typename> class a; class b {}; template <typename e> a<e> d(char); template <typename> class a : public b { public: virtual ~a(); }; namespace { class f; b c = d<f>(int()); } // namespace $ g++ -flto test.ii -c -O2 -g -shared -fPIC -c -o x.o && g++ x.o test.ii:6:11: warning: ‘a< <template-parameter-1-1> >::~a() noexcept [with <template-parameter-1-1> = {anonymous}::f]’ used but never defined 6 | virtual ~a(); | ^ test.ii:3:28: warning: ‘a<e> d(char) [with e = {anonymous}::f]’ used but never defined 3 | template <typename e> a<e> d(char); | ^ lto1: internal compiler error: in lto_symtab_prevailing_virtual_decl, at lto/lto-symtab.c:1075 0x5b5c37 lto_symtab_prevailing_virtual_decl(tree_node*) /home/marxin/Programming/gcc/gcc/lto/lto-symtab.c:1075 0x5b5c37 lto_symtab_prevailing_virtual_decl(tree_node*) /home/marxin/Programming/gcc/gcc/lto/lto-symtab.c:1071 0x77e2a8 lto_symtab_prevailing_decl(tree_node*) /home/marxin/Programming/gcc/gcc/lto/lto-symtab.h:53 0x77e2a8 lto_fixup_prevailing_decls /home/marxin/Programming/gcc/gcc/lto/lto.c:2659 0x783442 lto_fixup_decls /home/marxin/Programming/gcc/gcc/lto/lto.c:2725 0x783442 read_cgraph_and_symbols /home/marxin/Programming/gcc/gcc/lto/lto.c:2971 0x783442 lto_main() /home/marxin/Programming/gcc/gcc/lto/lto.c:3401