diff options
author | Kaveh R. Ghazi <ghazi@caip.rutgers.edu> | 2007-06-12 18:36:05 +0000 |
---|---|---|
committer | Kaveh Ghazi <ghazi@gcc.gnu.org> | 2007-06-12 18:36:05 +0000 |
commit | 4c8c70e06a66649496afd6fed8ffa3c131c8de82 (patch) | |
tree | 28a5829b4314d3e5594b4821a5e06e7b7ae2fbe9 /gcc/real.c | |
parent | 058dcc25b74ed4d171182311a12d27272844ee16 (diff) | |
download | gcc-4c8c70e06a66649496afd6fed8ffa3c131c8de82.zip gcc-4c8c70e06a66649496afd6fed8ffa3c131c8de82.tar.gz gcc-4c8c70e06a66649496afd6fed8ffa3c131c8de82.tar.bz2 |
real.c (real_isfinite): New.
* real.c (real_isfinite): New.
(real_sqrt): Use it.
* real.h (real_isfinite): New.
* builtins.c: Use it.
From-SVN: r125654
Diffstat (limited to 'gcc/real.c')
-rw-r--r-- | gcc/real.c | 10 |
1 files changed, 9 insertions, 1 deletions
@@ -1163,6 +1163,14 @@ real_isnan (const REAL_VALUE_TYPE *r) return (r->cl == rvc_nan); } +/* Determine whether a floating-point value X is finite. */ + +bool +real_isfinite (const REAL_VALUE_TYPE *r) +{ + return (r->cl != rvc_nan) && (r->cl != rvc_inf); +} + /* Determine whether a floating-point value X is negative. */ bool @@ -4571,7 +4579,7 @@ real_sqrt (REAL_VALUE_TYPE *r, enum machine_mode mode, } /* Infinity and NaN return themselves. */ - if (real_isinf (x) || real_isnan (x)) + if (!real_isfinite (x)) { *r = *x; return false; |