aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-eh.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2013-05-07 11:23:39 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2013-05-07 11:23:39 +0000
commit0a1a83cba32006411c4ce4793ca516406489cfae (patch)
treead243743b7f0922ee1b709b4627ede6a9cc57e23 /gcc/tree-eh.c
parentba7e83f8dcae71029dfba361070319ab22e2e37a (diff)
downloadgcc-0a1a83cba32006411c4ce4793ca516406489cfae.zip
gcc-0a1a83cba32006411c4ce4793ca516406489cfae.tar.gz
gcc-0a1a83cba32006411c4ce4793ca516406489cfae.tar.bz2
re PR tree-optimization/57190 (verify_ssa failed: SSA_NAME_OCCURS_IN_ABNORMAL_PHI should be set)
2013-05-07 Richard Biener <rguenther@suse.de> PR middle-end/57190 * tree-eh.c (sink_clobbers): Properly propagate SSA_NAME_OCCURS_IN_ABNORMAL_PHI. * g++.dg/torture/pr57190.C: New testcase. From-SVN: r198675
Diffstat (limited to 'gcc/tree-eh.c')
-rw-r--r--gcc/tree-eh.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/tree-eh.c b/gcc/tree-eh.c
index cbd878c..fb6fd86 100644
--- a/gcc/tree-eh.c
+++ b/gcc/tree-eh.c
@@ -3401,6 +3401,11 @@ sink_clobbers (basic_block bb)
FOR_EACH_IMM_USE_STMT (use_stmt, iter, vuse)
FOR_EACH_IMM_USE_ON_STMT (use_p, iter)
SET_USE (use_p, gimple_vdef (stmt));
+ if (SSA_NAME_OCCURS_IN_ABNORMAL_PHI (vuse))
+ {
+ SSA_NAME_OCCURS_IN_ABNORMAL_PHI (gimple_vdef (stmt)) = 1;
+ SSA_NAME_OCCURS_IN_ABNORMAL_PHI (vuse) = 0;
+ }
/* Adjust the incoming virtual operand. */
SET_USE (PHI_ARG_DEF_PTR_FROM_EDGE (vphi, succe), gimple_vuse (stmt));
SET_USE (gimple_vuse_op (stmt), vuse);