re PR tree-optimization/63445 (request: make -Wstrict-overflow avoid a class of false positives)
2014-10-09 Richard Biener <rguenther@suse.de> PR tree-optimization/63445 * tree-vrp.c (simplify_cond_using_ranges): Only warn about overflow for non-equality compares. * gcc.dg/Wstrict-overflow-26.c: New testcase. From-SVN: r216028
This commit is contained in:
parent
9d55066c88
commit
ee68591e69
4 changed files with 30 additions and 2 deletions
|
@ -1,3 +1,9 @@
|
|||
2014-10-09 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/63445
|
||||
* tree-vrp.c (simplify_cond_using_ranges): Only warn about
|
||||
overflow for non-equality compares.
|
||||
|
||||
2014-10-09 Uros Bizjak <ubizjak@gmail.com>
|
||||
|
||||
PR rtl-optimization/57003
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2014-10-09 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/63445
|
||||
* gcc.dg/Wstrict-overflow-26.c: New testcase.
|
||||
|
||||
2014-10-08 Pat Haugen <pthaugen@us.ibm.com>
|
||||
|
||||
* gcc.dg/vmx/3c-01a.c: Add default options from vmx.exp.
|
||||
|
|
16
gcc/testsuite/gcc.dg/Wstrict-overflow-26.c
Normal file
16
gcc/testsuite/gcc.dg/Wstrict-overflow-26.c
Normal file
|
@ -0,0 +1,16 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-O2 -Wstrict-overflow" } */
|
||||
|
||||
int
|
||||
f (int i, int j)
|
||||
{
|
||||
unsigned int c = 0;
|
||||
if (i < j)
|
||||
{
|
||||
unsigned int n = j - i;
|
||||
unsigned int i;
|
||||
for (i = 0; i < n; i++) /* { dg-bogus "signed overflow" } */
|
||||
c++;
|
||||
}
|
||||
return c;
|
||||
}
|
|
@ -9189,8 +9189,9 @@ simplify_cond_using_ranges (gimple stmt)
|
|||
/* If the range overflowed and the user has asked for warnings
|
||||
when strict overflow semantics were used to optimize code,
|
||||
issue an appropriate warning. */
|
||||
if ((is_negative_overflow_infinity (vr->min)
|
||||
|| is_positive_overflow_infinity (vr->max))
|
||||
if (cond_code != EQ_EXPR && cond_code != NE_EXPR
|
||||
&& (is_negative_overflow_infinity (vr->min)
|
||||
|| is_positive_overflow_infinity (vr->max))
|
||||
&& issue_strict_overflow_warning (WARN_STRICT_OVERFLOW_CONDITIONAL))
|
||||
{
|
||||
location_t location;
|
||||
|
|
Loading…
Add table
Reference in a new issue