https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89296
Bug ID: 89296 Summary: tree copy-header masking uninitialized warning Product: gcc Version: 9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: kugan at gcc dot gnu.org Target Milestone: --- void test_func(void) { int loop; // uninitialized and "garbage" while (!loop) { loop = get_a_value(); // <- must be for this test printk("..."); } } from Linaro bug report https://bugs.linaro.org/show_bug.cgi?id=4134 -fno-tree-ch gets the required warning diff --git a/gcc/tree-ssa-loop-ch.c b/gcc/tree-ssa-loop-ch.c index c876d62..d405d00 100644 --- a/gcc/tree-ssa-loop-ch.c +++ b/gcc/tree-ssa-loop-ch.c @@ -393,7 +393,7 @@ ch_base::copy_headers (function *fun) { gimple *stmt = gsi_stmt (bsi); if (gimple_code (stmt) == GIMPLE_COND) - gimple_set_no_warning (stmt, true); + ;//gimple_set_no_warning (stmt, true); else if (is_gimple_assign (stmt)) { enum tree_code rhs_code = gimple_assign_rhs_code (stmt); also gets the required warning. Looking into it.