Commit e7c6abad by Aldy Hernandez Committed by Aldy Hernandez

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
parent 266404a8
2018-01-10 Aldy Hernandez <aldyh@redhat.com>
PR middle-end/81897
* tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Skip
empty blocks.
2018-01-10 Eric Botcazou <ebotcazou@adacore.com> 2018-01-10 Eric Botcazou <ebotcazou@adacore.com>
* dwarf2out.c (dwarf2out_var_location): Do not pass NULL to fprintf. * dwarf2out.c (dwarf2out_var_location): Do not pass NULL to fprintf.
......
/* { dg-do compile } */
/* { dg-options "-O1 -fno-tree-ccp -Wmaybe-uninitialized" } */
int oo;
void
pc (int *tt)
{
int cf = 0;
if (*tt != 0)
{
if (0)
{
int *qg;
int uj = 0;
t6:
tt = &cf;
if (oo != 0)
{
++uj; /* { dg-warning "may be used uninit" } */
*qg = !!oo && !!uj; /* { dg-warning "may be used uninit" } */
}
}
cf = 0;
goto t6;
}
if (oo != 0)
{
*tt = 1;
goto t6;
}
}
...@@ -669,9 +669,16 @@ convert_control_dep_chain_into_preds (vec<edge> *dep_chains, ...@@ -669,9 +669,16 @@ convert_control_dep_chain_into_preds (vec<edge> *dep_chains,
e = one_cd_chain[j]; e = one_cd_chain[j];
guard_bb = e->src; guard_bb = e->src;
gsi = gsi_last_bb (guard_bb); 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)) if (empty_block_p (guard_bb) && single_succ_p (guard_bb))
continue; 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); cond_stmt = gsi_stmt (gsi);
if (is_gimple_call (cond_stmt) && EDGE_COUNT (e->src->succs) >= 2) if (is_gimple_call (cond_stmt) && EDGE_COUNT (e->src->succs) >= 2)
/* Ignore EH edge. Can add assertion on the other edge's flag. */ /* Ignore EH edge. Can add assertion on the other edge's flag. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment