diff options
author | Richard Biener <rguenther@suse.de> | 2013-05-07 11:23:39 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2013-05-07 11:23:39 +0000 |
commit | 0a1a83cba32006411c4ce4793ca516406489cfae (patch) | |
tree | ad243743b7f0922ee1b709b4627ede6a9cc57e23 /gcc/tree-eh.c | |
parent | ba7e83f8dcae71029dfba361070319ab22e2e37a (diff) | |
download | gcc-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.c | 5 |
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); |