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

Reply via email to