Commit c4149197 by Richard Biener Committed by Richard Biener

re PR tree-optimization/89296 (tree copy-header masking uninitialized warning)

2019-02-18  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/89296
	* tree-ssa-loop-ch.c (ch_base::copy_headers): Restrict setting
	of no-warning flag to cases that might emit the bogus warning.

	* gcc.dg/uninit-pr89296.c: New testcase.

From-SVN: r268986
parent 02204940
2019-02-18 Richard Biener <rguenther@suse.de>
PR tree-optimization/89296
* tree-ssa-loop-ch.c (ch_base::copy_headers): Restrict setting
of no-warning flag to cases that might emit the bogus warning.
2019-02-18 Jakub Jelinek <jakub@redhat.com>
PR bootstrap/88714
......
2019-02-18 Richard Biener <rguenther@suse.de>
PR tree-optimization/89296
* gcc.dg/uninit-pr89296.c: New testcase.
2019-02-18 Jakub Jelinek <jakub@redhat.com>
PR target/89369
......
/* { dg-do compile } */
/* { dg-options "-O2 -Wuninitialized" } */
int get_a_value ();
void printk(const char *);
void test_func()
{
int loop;
while (!loop) { /* { dg-warning "is used uninitialized" } */
loop = get_a_value();
printk("...");
}
}
......@@ -452,11 +452,23 @@ ch_base::copy_headers (function *fun)
{
gimple *stmt = gsi_stmt (bsi);
if (gimple_code (stmt) == GIMPLE_COND)
gimple_set_no_warning (stmt, true);
{
tree lhs = gimple_cond_lhs (stmt);
if (gimple_cond_code (stmt) != EQ_EXPR
&& gimple_cond_code (stmt) != NE_EXPR
&& INTEGRAL_TYPE_P (TREE_TYPE (lhs))
&& TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (lhs)))
gimple_set_no_warning (stmt, true);
}
else if (is_gimple_assign (stmt))
{
enum tree_code rhs_code = gimple_assign_rhs_code (stmt);
if (TREE_CODE_CLASS (rhs_code) == tcc_comparison)
tree rhs1 = gimple_assign_rhs1 (stmt);
if (TREE_CODE_CLASS (rhs_code) == tcc_comparison
&& rhs_code != EQ_EXPR
&& rhs_code != NE_EXPR
&& INTEGRAL_TYPE_P (TREE_TYPE (rhs1))
&& TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (rhs1)))
gimple_set_no_warning (stmt, true);
}
}
......
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