[gcc r14-1634] Fix floating point bug in fold_range.

Andrew Macleod amacleod@gcc.gnu.org
Thu Jun 8 18:57:22 GMT 2023


https://gcc.gnu.org/g:ce81740c44c07a82a0839fa8c08a0a51a72c5cfe

commit r14-1634-gce81740c44c07a82a0839fa8c08a0a51a72c5cfe
Author: Andrew MacLeod <amacleod@redhat.com>
Date:   Wed Jun 7 14:03:35 2023 -0400

    Fix floating point bug in fold_range.
    
    We currently do not have any floating point operators where operand 1 is
    a different type than the LHS. When we eventually do there is a bug
    in fold_range. If either operand is a known NAN, it returns a NAN
    of the type of operand 1 instead of the result type.
    
            * range-op-float.cc (range_operator_float::fold_range): Return
            NAN of the result type.

Diff:
---
 gcc/range-op-float.cc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gcc/range-op-float.cc b/gcc/range-op-float.cc
index a99a6b01ed8..af598b60a79 100644
--- a/gcc/range-op-float.cc
+++ b/gcc/range-op-float.cc
@@ -57,7 +57,7 @@ range_operator_float::fold_range (frange &r, tree type,
     return true;
   if (op1.known_isnan () || op2.known_isnan ())
     {
-      r.set_nan (op1.type ());
+      r.set_nan (type);
       return true;
     }


More information about the Gcc-cvs mailing list