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

--- Comment #4 from Mikhail Maltsev <miyuki at gcc dot gnu.org> ---
Created attachment 36570
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=36570&action=edit
reproducer

Compile like this:
/opt/gcc-6.0.0/bin/g++ -O3 -flto tu{1,2,3}.cc

lto1: internal compiler error: in record_target_from_binfo, at
ipa-devirt.c:2599
0x80492d record_target_from_binfo
        /home/miyuki/gcc/src/gcc/ipa-devirt.c:2599
0x804405 record_target_from_binfo
        /home/miyuki/gcc/src/gcc/ipa-devirt.c:2640
0x804e44 possible_polymorphic_call_targets_1
        /home/miyuki/gcc/src/gcc/ipa-devirt.c:2687
0x80b8fc possible_polymorphic_call_targets(tree_node*, long,
ipa_polymorphic_call_context, bool*, void**, bool)
        /home/miyuki/gcc/src/gcc/ipa-devirt.c:3216
0x80d1fc try_speculative_devirtualization(tree_node*, long,
ipa_polymorphic_call_context)
        /home/miyuki/gcc/src/gcc/ipa-devirt.c:3576
0x109aec9 ipa_get_indirect_edge_target_1
        /home/miyuki/gcc/src/gcc/ipa-cp.c:2142
0x81fb52 estimate_edge_devirt_benefit
        /home/miyuki/gcc/src/gcc/ipa-inline-analysis.c:3048
0x81ff5b estimate_edge_size_and_time
<...>

I did not preserve validity, i.e. compiling without optimization gives link
error:
tu3.cc:(.text._ZN9SPxPricerC2Ev[_ZN9SPxPricerC5Ev]+0x9): undefined reference to
`vtable for SPxPricer'
(because of missing definition for SPxPricer::load).

Reply via email to