ipa-prop.c (remove_described_reference): Accept missing references, return false...
commit568cda29c5a4ffb086d8308745ae8b86427dab61
authorMartin Jambor <mjambor@suse.cz>
Thu, 5 Sep 2013 12:41:16 +0000 (5 14:41 +0200)
committerMartin Jambor <jamborm@gcc.gnu.org>
Thu, 5 Sep 2013 12:41:16 +0000 (5 14:41 +0200)
tree90881c22dd3aedd23f522f30c644b2f07bc9ddb2
parent5a200acb0519af47612f0e92c86c07ec69a6ae81
ipa-prop.c (remove_described_reference): Accept missing references, return false if that hppens, otherwise return true.

2013-09-05  Martin Jambor  <mjambor@suse.cz>

* ipa-prop.c (remove_described_reference): Accept missing references,
return false if that hppens, otherwise return true.
(cgraph_node_for_jfunc): New function.
(try_decrement_rdesc_refcount): Likewise.
(try_make_edge_direct_simple_call): Use them.
(ipa_edge_removal_hook): Remove references from rdescs.
(ipa_edge_duplication_hook): Clone rdescs and their references
when the new edge has the same caller as the old one.
* cgraph.c (cgraph_resolve_speculation): Remove speculative
reference before removing any edges.

testsuite/
* g++.dg/ipa/remref-1.C: New test.
* g++.dg/ipa/remref-2.C: Likewise.

From-SVN: r202281
gcc/ChangeLog
gcc/cgraph.c
gcc/ipa-prop.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/ipa/remref-1.C [new file with mode: 0644]
gcc/testsuite/g++.dg/ipa/remref-2.C [new file with mode: 0644]