diff options
author | Aldy Hernandez <aldyh@redhat.com> | 2018-01-10 21:39:20 +0000 |
---|---|---|
committer | Aldy Hernandez <aldyh@gcc.gnu.org> | 2018-01-10 21:39:20 +0000 |
commit | e7c6abad7f0bcbf0e60d27bc8cff1087c5195f76 (patch) | |
tree | 4b719a808b76f3cf629aba03fa7b178fe0ecf8ba /gcc/tree-ssa-uninit.c | |
parent | 266404a8d62b99ab6dd6579bbd33fca32e91ca3b (diff) |
re PR middle-end/81897 (spurious -Wmaybe-uninitialized warning)
PR middle-end/81897
* tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Skip
empty blocks.
From-SVN: r256456
Diffstat (limited to 'gcc/tree-ssa-uninit.c')
-rw-r--r-- | gcc/tree-ssa-uninit.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/gcc/tree-ssa-uninit.c b/gcc/tree-ssa-uninit.c index 38239476286..8ccbc85970a 100644 --- a/gcc/tree-ssa-uninit.c +++ b/gcc/tree-ssa-uninit.c @@ -669,9 +669,16 @@ convert_control_dep_chain_into_preds (vec<edge> *dep_chains, e = one_cd_chain[j]; guard_bb = e->src; gsi = gsi_last_bb (guard_bb); - /* Ignore empty BBs as they're basically forwarder blocks. */ + /* Ignore empty forwarder blocks. */ if (empty_block_p (guard_bb) && single_succ_p (guard_bb)) continue; + /* An empty basic block here is likely a PHI, and is not one + of the cases we handle below. */ + if (gsi_end_p (gsi)) + { + has_valid_pred = false; + break; + } cond_stmt = gsi_stmt (gsi); if (is_gimple_call (cond_stmt) && EDGE_COUNT (e->src->succs) >= 2) /* Ignore EH edge. Can add assertion on the other edge's flag. */ |