[Bug c++/60600] New: ICE in ipa_get_indirect_edge_target_1
lucdanton at free dot fr
gcc-bugzilla@gcc.gnu.org
Thu Mar 20 13:03:00 GMT 2014
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60600
Bug ID: 60600
Summary: ICE in ipa_get_indirect_edge_target_1
Product: gcc
Version: 4.9.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: lucdanton at free dot fr
Created attachment 32404
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=32404&action=edit
Testcase
$ g++-trunk --version
g++-trunk (GCC) 4.9.0 20140319 (experimental)
$ cat main.cpp
struct data {
data(int);
};
struct top {
virtual int topf();
};
struct intermediate: top {
int topf() /* override */ { return 0; }
};
struct child1: top {
void childf()
{
data d(topf());
}
};
struct child2: intermediate {};
void test(top& t)
{
child1& c = static_cast<child1&>(t);
c.childf();
child2 d;
test(d);
}
$ g++-trunk main.cpp -O3
main.cpp:28:1: internal compiler error: in ipa_get_indirect_edge_target_1, at
ipa-cp.c:1645
}
^
0x10ac52e ipa_get_indirect_edge_target_1
../../gcc/gcc/ipa-cp.c:1644
0xa1570c estimate_edge_devirt_benefit
../../gcc/gcc/ipa-inline-analysis.c:2955
0xa1570c estimate_edge_size_and_time
../../gcc/gcc/ipa-inline-analysis.c:2987
0xa1570c estimate_calls_size_and_time
../../gcc/gcc/ipa-inline-analysis.c:3040
0xa1602c estimate_node_size_and_time
../../gcc/gcc/ipa-inline-analysis.c:3127
0xa18016 estimate_ipcp_clone_size_and_time(cgraph_node*, vec<tree_node*,
va_heap, vl_ptr>, vec<tree_node*, va_heap, vl_ptr>, vec<ipa_agg_jump_function*,
va_heap, vl_ptr>, int*, int*, int*)
../../gcc/gcc/ipa-inline-analysis.c:3163
0x10b17fc estimate_local_effects
../../gcc/gcc/ipa-cp.c:2004
0x10b17fc propagate_constants_topo
../../gcc/gcc/ipa-cp.c:2229
0x10b17fc ipcp_propagate_stage
../../gcc/gcc/ipa-cp.c:2329
0x10b17fc ipcp_driver
../../gcc/gcc/ipa-cp.c:3707
0x10b17fc execute
../../gcc/gcc/ipa-cp.c:3806
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <http://gcc.gnu.org/bugs.html> for instructions.
-------------------------------------
This only happens with -O3, in all C++ modes. This may be a regression – the
testcase was built from the preprocessed source of a third-party library, with
stock settings. Presumably it built at some point before shipping.
More information about the Gcc-bugs
mailing list