https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91574

            Bug ID: 91574
           Summary: [10 Regression] ICE in types_same_for_odr at
                    gcc/ipa-devirt.c:355 since r272037
           Product: gcc
           Version: 10.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 ginac.ii
class A {
public:
  virtual ~A();
  A(A &);
  virtual unsigned m_fn1() const;
};
class B : A {
  unsigned m_fn1() const;
};
void fn1(B p1) { B a[]{p1, p1}; }

$ g++ ginac.ii  -O2 -flto -shared -fPIC -c && g++ ginac.o -shared -O2
during GIMPLE pass: fre
ginac.ii: In function ‘fn1’:
ginac.ii:10:6: internal compiler error: Segmentation fault
   10 | void fn1(B p1) { B a[]{p1, p1}; }
      |      ^
0xc935df crash_signal
        /home/marxin/Programming/gcc/gcc/toplev.c:326
0x7f307662fe4f ???
       
/usr/src/debug/glibc-2.29-7.3.x86_64/signal/../sysdeps/unix/sysv/linux/x86_64/sigaction.c:0
0xf437a1 contains_struct_check(tree_node*, tree_node_structure_enum, char
const*, int, char const*)
        /home/marxin/Programming/gcc/gcc/tree.h:3376
0xf437a1 decl_assembler_name(tree_node*)
        /home/marxin/Programming/gcc/gcc/tree.c:716
0xa7dc03 types_same_for_odr(tree_node const*, tree_node const*)
        /home/marxin/Programming/gcc/gcc/ipa-devirt.c:355
0xaa0384 ipa_polymorphic_call_context::get_dynamic_type(tree_node*, tree_node*,
tree_node*, gimple*, unsigned int*)
        /home/marxin/Programming/gcc/gcc/ipa-polymorphic-call.c:1804
0xe4a302 eliminate_dom_walker::eliminate_stmt(basic_block_def*,
gimple_stmt_iterator*)
        /home/marxin/Programming/gcc/gcc/tree-ssa-sccvn.c:5745
0xe4b47d eliminate_dom_walker::before_dom_children(basic_block_def*)
        /home/marxin/Programming/gcc/gcc/tree-ssa-sccvn.c:5904
0xe4b47d eliminate_dom_walker::before_dom_children(basic_block_def*)
        /home/marxin/Programming/gcc/gcc/tree-ssa-sccvn.c:5837
0x14db557 dom_walker::walk(basic_block_def*)
        /home/marxin/Programming/gcc/gcc/domwalk.c:309
0xe43f1b eliminate_with_rpo_vn(bitmap_head*)
        /home/marxin/Programming/gcc/gcc/tree-ssa-sccvn.c:6082
0xe535c8 do_rpo_vn
        /home/marxin/Programming/gcc/gcc/tree-ssa-sccvn.c:7227
0xe541c0 execute
        /home/marxin/Programming/gcc/gcc/tree-ssa-sccvn.c:7309
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.
lto-wrapper: fatal error: g++ returned 1 exit status
compilation terminated.
/usr/bin/ld: error: lto-wrapper failed
collect2: error: ld returned 1 exit status

Reply via email to