fold-const.c (fold <EQ_EXPR>): Don't fold x == x only if x is a floating point type *and* we currently honor NaNs.
* fold-const.c (fold <EQ_EXPR>): Don't fold x == x only if x is a floating point type *and* we currently honor NaNs. (fold <NE_EXPR>): Likewise. From-SVN: r67700
This commit is contained in:
parent
5107c6e455
commit
8936c82f1e
@ -1,3 +1,9 @@
|
||||
2003-06-10 Roger Sayle <roger@eyesopen.com>
|
||||
|
||||
* fold-const.c (fold <EQ_EXPR>): Don't fold x == x only if x
|
||||
is a floating point type *and* we currently honor NaNs.
|
||||
(fold <NE_EXPR>): Likewise.
|
||||
|
||||
2003-06-10 Mark Mitchell <mark@codesourcery.com>
|
||||
|
||||
PR c++/11131
|
||||
|
@ -7046,15 +7046,18 @@ fold (expr)
|
||||
case EQ_EXPR:
|
||||
case GE_EXPR:
|
||||
case LE_EXPR:
|
||||
if (! FLOAT_TYPE_P (TREE_TYPE (arg0)))
|
||||
if (! FLOAT_TYPE_P (TREE_TYPE (arg0))
|
||||
|| ! HONOR_NANS (TYPE_MODE (TREE_TYPE (arg0))))
|
||||
return constant_boolean_node (1, type);
|
||||
code = EQ_EXPR;
|
||||
TREE_SET_CODE (t, code);
|
||||
break;
|
||||
|
||||
case NE_EXPR:
|
||||
/* For NE, we can only do this simplification if integer. */
|
||||
if (FLOAT_TYPE_P (TREE_TYPE (arg0)))
|
||||
/* For NE, we can only do this simplification if integer
|
||||
or we don't honor IEEE floating point NaNs. */
|
||||
if (FLOAT_TYPE_P (TREE_TYPE (arg0))
|
||||
&& HONOR_NANS (TYPE_MODE (TREE_TYPE (arg0))))
|
||||
break;
|
||||
/* ... fall through ... */
|
||||
case GT_EXPR:
|
||||
|
Loading…
Reference in New Issue
Block a user