diff options
Diffstat (limited to 'gcc/tree-ssa-uninit.c')
-rw-r--r-- | gcc/tree-ssa-uninit.c | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/gcc/tree-ssa-uninit.c b/gcc/tree-ssa-uninit.c index aa01c51..9a726f1 100644 --- a/gcc/tree-ssa-uninit.c +++ b/gcc/tree-ssa-uninit.c @@ -165,17 +165,12 @@ compute_uninit_opnds_pos (gimple phi) && uninit_undefined_value_p (op) && !can_skip_redundant_opnd (op, phi)) { - /* Ignore SSA_NAMEs on abnormal edges to setjmp - or nonlocal goto receiver. */ if (cfun->has_nonlocal_label || cfun->calls_setjmp) { - edge e = gimple_phi_arg_edge (phi, i); - if (e->flags & EDGE_ABNORMAL) - { - gimple last = last_stmt (e->src); - if (last && stmt_can_make_abnormal_goto (last)) - continue; - } + /* Ignore SSA_NAMEs that appear on abnormal edges + somewhere. */ + if (SSA_NAME_OCCURS_IN_ABNORMAL_PHI (op)) + continue; } MASK_SET_BIT (uninit_opnds, i); } |