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