From e233ac979c0f179f858f3c86281835a4c09cece2 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Thu, 27 Sep 2007 17:31:34 +0000 Subject: re PR tree-optimization/33565 (spurious warning: assuming signed overflow does not occur when assuming that (X + c) >= X is always true) ./: PR tree-optimization/33565 * tree-ssa-loop-ch.c (copy_loop_headers): Set TREE_NO_WARNING on assignments of comparisons. * tree-ssa-sccvn.c (simplify_binary_expression): Add stmt parameter. Change caller. Defer overflow warnings around call to fold_binary. * fold-const.c (fold_undefer_overflow_warnings): Don't warn if TREE_NO_WARNING is set on the statement. * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars): Don't test TREE_NO_WARNING when calling fold_undefer_overflow_warnings. * tree-cfg.c (fold_cond_expr_cond): Likewise. testsuite/: PR tree-optimization/33565 * gcc.dg/Wstrict-overflow-20.c: New test. From-SVN: r128840 --- gcc/tree-ssa-forwprop.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'gcc/tree-ssa-forwprop.c') diff --git a/gcc/tree-ssa-forwprop.c b/gcc/tree-ssa-forwprop.c index e026b80..60e6ffa 100644 --- a/gcc/tree-ssa-forwprop.c +++ b/gcc/tree-ssa-forwprop.c @@ -1021,8 +1021,7 @@ tree_ssa_forward_propagate_single_use_vars (void) did_something = forward_propagate_into_cond (stmt, stmt); if (did_something == 2) cfg_changed = true; - fold_undefer_overflow_warnings (!TREE_NO_WARNING (stmt) - && did_something, stmt, + fold_undefer_overflow_warnings (did_something, stmt, WARN_STRICT_OVERFLOW_CONDITIONAL); bsi_next (&bsi); } -- cgit v1.1