c-common.c (warn_tautological_cmp): Bail for float types.
* c-common.c (warn_tautological_cmp): Bail for float types. * c-c++-common/Wtautological-compare-3.c: New test. From-SVN: r226388
This commit is contained in:
parent
53a19317f4
commit
173864e8f1
@ -1,3 +1,7 @@
|
||||
2015-07-30 Marek Polacek <polacek@redhat.com>
|
||||
|
||||
* c-common.c (warn_tautological_cmp): Bail for float types.
|
||||
|
||||
2015-07-27 Marek Polacek <polacek@redhat.com>
|
||||
|
||||
PR bootstrap/67030
|
||||
|
@ -1910,6 +1910,12 @@ warn_tautological_cmp (location_t loc, enum tree_code code, tree lhs, tree rhs)
|
||||
|| (CONVERT_EXPR_P (rhs) || TREE_CODE (rhs) == NON_LVALUE_EXPR))
|
||||
return;
|
||||
|
||||
/* Don't warn if either LHS or RHS has an IEEE floating-point type.
|
||||
It could be a NaN, and NaN never compares equal to anything, even
|
||||
itself. */
|
||||
if (FLOAT_TYPE_P (TREE_TYPE (lhs)) || FLOAT_TYPE_P (TREE_TYPE (rhs)))
|
||||
return;
|
||||
|
||||
if (operand_equal_p (lhs, rhs, 0))
|
||||
{
|
||||
/* Don't warn about array references with constant indices;
|
||||
|
@ -1,3 +1,7 @@
|
||||
2015-07-30 Marek Polacek <polacek@redhat.com>
|
||||
|
||||
* c-c++-common/Wtautological-compare-3.c: New test.
|
||||
|
||||
2015-07-29 Alan Lawrence <alan.lawrence@arm.com>
|
||||
|
||||
* gcc.target/aarch64/vld1_lane.c (main): Remove unused test data.
|
||||
|
20
gcc/testsuite/c-c++-common/Wtautological-compare-3.c
Normal file
20
gcc/testsuite/c-c++-common/Wtautological-compare-3.c
Normal file
@ -0,0 +1,20 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-Wtautological-compare" } */
|
||||
/* Test we don't warn for floats. */
|
||||
|
||||
struct S { double d; float f; };
|
||||
|
||||
void
|
||||
fn1 (int i, float f, double d, struct S *s, float *fp)
|
||||
{
|
||||
if (f == f);
|
||||
if (f != f);
|
||||
if (d == d);
|
||||
if (d != d);
|
||||
if (fp[i] == fp[i]);
|
||||
if (fp[i] != fp[i]);
|
||||
if (s->f == s->f);
|
||||
if (s->f != s->f);
|
||||
if (s->d == s->d);
|
||||
if (s->d != s->d);
|
||||
}
|
Loading…
Reference in New Issue
Block a user