https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92599
            Bug ID: 92599
           Summary: ICE in speculative_call_info, at cgraph.c:1142
           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: ---

Created attachment 47308
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=47308&action=edit
test-case

It's actually a quite old issue, I see it with 4.9.0 as well:

$ g++ -O2 -flto=auto d1.ii d2.ii d3.ii
d2.ii:5:7: warning: type ‘struct idRenderModelStatic’ violates the C++ One
Definition Rule [-Wodr]
    5 | class idRenderModelStatic : public idRenderModel {};
      |       ^
d1.ii:33:7: note: a type with the same name but different number of polymorphic
bases is defined in another translation unit
   33 | class idRenderModelStatic {
      |       ^
d2.ii:1:7: note: the extra base is defined here
    1 | class idRenderModel {
      |       ^
during IPA pass: inline
d1.ii: In member function ‘InitFromFile’:
d1.ii:41:69: internal compiler error: in speculative_call_info, at
cgraph.c:1142
   41 | void idRenderModelStatic::InitFromFile() {
ConvertASEToModelSurfaces(0); }
      |                                                                     ^
0x5d1fdd cgraph_edge::speculative_call_info(cgraph_edge*&, cgraph_edge*&,
ipa_ref*&)
        /home/marxin/Programming/gcc/gcc/cgraph.c:1142
0xd48085 copy_bb
        /home/marxin/Programming/gcc/gcc/tree-inline.c:2196
0xd49bb2 copy_cfg_body
        /home/marxin/Programming/gcc/gcc/tree-inline.c:2982
0xd49bb2 copy_body
        /home/marxin/Programming/gcc/gcc/tree-inline.c:3230
0xd4d01e expand_call_inline
        /home/marxin/Programming/gcc/gcc/tree-inline.c:5020
0xd4e5d4 gimple_expand_calls_inline
        /home/marxin/Programming/gcc/gcc/tree-inline.c:5212
0xd4e5d4 optimize_inline_calls(tree_node*)
        /home/marxin/Programming/gcc/gcc/tree-inline.c:5352
0x15da164 inline_transform(cgraph_node*)
        /home/marxin/Programming/gcc/gcc/ipa-inline-transform.c:720
0xbf0b3a execute_one_ipa_transform_pass
        /home/marxin/Programming/gcc/gcc/passes.c:2231
0xbf0b3a execute_all_ipa_transforms(bool)
        /home/marxin/Programming/gcc/gcc/passes.c:2270
0x893011 cgraph_node::expand()
        /home/marxin/Programming/gcc/gcc/cgraphunit.c:2189
0x893feb expand_all_functions
        /home/marxin/Programming/gcc/gcc/cgraphunit.c:2335
0x893feb symbol_table::compile()
        /home/marxin/Programming/gcc/gcc/cgraphunit.c:2685
0x7f2539 lto_main()
        /home/marxin/Programming/gcc/gcc/lto/lto.c:657
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.
make: *** [/tmp/ccIwizMb.mk:2: /tmp/ccXR29I9.ltrans0.ltrans.o] Error 1
lto-wrapper: fatal error: make returned 2 exit status
compilation terminated.
/usr/bin/ld: error: lto-wrapper failed
collect2: error: ld returned 1 exit status

Reply via email to