https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88081
Bug ID: 88081 Summary: [7/8/9 Regression] ICE in lto_varpool_replace_node, at lto/lto-symtab.c:109 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: marxin at gcc dot gnu.org Target Milestone: --- Following is causing ICE: $ cat 1.ii class a { public: virtual ~a(); }; class b { virtual int c() const noexcept; }; int b::c() const noexcept { return 0; } namespace __cxxabiv1 { class __class_type_info : a {}; } // namespace __cxxabiv1 $ cat 2.ii class a { virtual char b(); }; class c { virtual bool m_fn2() const noexcept; }; bool c::m_fn2() const noexcept { return true; } namespace __cxxabiv1 { class __class_type_info : a {}; } // namespace __cxxabiv1 $ g++ -c -flto 1.ii && g++ -c -flto 2.ii -O3 && g++ [12].o during IPA pass: pure-const lto1: internal compiler error: in lto_varpool_replace_node, at lto/lto-symtab.c:109 0x5b6992 lto_varpool_replace_node /home/marxin/Programming/gcc/gcc/lto/lto-symtab.c:109 0x79b794 lto_symtab_merge_symbols_1 /home/marxin/Programming/gcc/gcc/lto/lto-symtab.c:916 0x79b794 lto_symtab_merge_symbols() /home/marxin/Programming/gcc/gcc/lto/lto-symtab.c:973 0x78c82f read_cgraph_and_symbols /home/marxin/Programming/gcc/gcc/lto/lto.c:3013 0x78c82f lto_main() /home/marxin/Programming/gcc/gcc/lto/lto.c:3401