aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-threadbackward.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/tree-ssa-threadbackward.c')
-rw-r--r--gcc/tree-ssa-threadbackward.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/tree-ssa-threadbackward.c b/gcc/tree-ssa-threadbackward.c
index 8c99f6f..8d8aa30 100644
--- a/gcc/tree-ssa-threadbackward.c
+++ b/gcc/tree-ssa-threadbackward.c
@@ -99,6 +99,11 @@ fsm_find_control_statement_thread_paths (tree name,
vec<basic_block, va_gc> *&path,
bool seen_loop_phi)
{
+ /* If NAME appears in an abnormal PHI, then don't try to trace its
+ value back through PHI nodes. */
+ if (SSA_NAME_OCCURS_IN_ABNORMAL_PHI (name))
+ return;
+
gimple *def_stmt = SSA_NAME_DEF_STMT (name);
basic_block var_bb = gimple_bb (def_stmt);