[Bug middle-end/58789] [4.8 Regression] "internal compiler error: Segmentation fault" with external definition
jamborm at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Oct 24 17:22:00 GMT 2013
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58789
--- Comment #5 from Martin Jambor <jamborm at gcc dot gnu.org> ---
Well, IPA-CP devirtualization is required to trigger the bug but it is
a clone materialization problem.
The following line (invoked as a consequence of fold_stmt
devirtualization) in cgraph_update_edges_for_call_stmt_node causes the
bug:
ne = cgraph_create_edge (node, cgraph_get_create_node (new_call),
new_stmt, count, frequency);
cgraph_get_create_node returns an inlined clone and it gets an extra
caller edge. Verifier then complains there is an un-inlined edge to
an inlined node but the problem really is that there are two edges.
Either we need to make sure that we keep an un-inlined node for
devirtualization which cgraph_get_create_node can pick up until we are
done with materializations, ore need to backport and use
cgraph_get_create_real_symbol_node from
http://gcc.gnu.org/ml/gcc-patches/2013-03/msg00621.html
More information about the Gcc-bugs
mailing list