aboutsummaryrefslogtreecommitdiff
path: root/gcc/range-op-float.cc
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2023-03-28 10:55:31 +0200
committerJakub Jelinek <jakub@redhat.com>2023-03-28 10:55:31 +0200
commitccaee0d2c994ada5be6bcaae1ce3e43ca56fc617 (patch)
treee0298cdb6e9a7382864903b6e20e0ec1e3e2ff03 /gcc/range-op-float.cc
parent3c62ba93de890c169f741519dab7f7e825799a4a (diff)
downloadgcc-ccaee0d2c994ada5be6bcaae1ce3e43ca56fc617.zip
gcc-ccaee0d2c994ada5be6bcaae1ce3e43ca56fc617.tar.gz
gcc-ccaee0d2c994ada5be6bcaae1ce3e43ca56fc617.tar.bz2
range-op-float: Use get_nan_state in float_widen_lhs_range
On Wed, Mar 22, 2023 at 07:32:44AM +0100, Aldy Hernandez wrote: > * value-range.cc (frange::set): Add nan_state argument. > * value-range.h (class nan_state): New. > (frange::get_nan_state): New. The following patch makes use of those changes in float_widen_lhs_range. 2023-03-28 Jakub Jelinek <jakub@redhat.com> * range-op-float.cc (float_widen_lhs_range): Use pass get_nan_state as 4th argument to set to avoid clear_nan and union_ calls.
Diffstat (limited to 'gcc/range-op-float.cc')
-rw-r--r--gcc/range-op-float.cc7
1 files changed, 1 insertions, 6 deletions
diff --git a/gcc/range-op-float.cc b/gcc/range-op-float.cc
index 9564114..dc9789b 100644
--- a/gcc/range-op-float.cc
+++ b/gcc/range-op-float.cc
@@ -2262,12 +2262,7 @@ float_widen_lhs_range (tree type, const frange &lhs)
or real_max_representable (type) as upper bound. */
bool save_flag_finite_math_only = flag_finite_math_only;
flag_finite_math_only = false;
- ret.set (type, lb, ub);
- if (lhs.kind () != VR_VARYING)
- {
- ret.clear_nan ();
- ret.union_ (lhs);
- }
+ ret.set (type, lb, ub, lhs.get_nan_state ());
flag_finite_math_only = save_flag_finite_math_only;
return ret;
}