aboutsummaryrefslogtreecommitdiff
path: root/gcc/real.c
diff options
context:
space:
mode:
authorKaveh R. Ghazi <ghazi@caip.rutgers.edu>2007-06-12 18:36:05 +0000
committerKaveh Ghazi <ghazi@gcc.gnu.org>2007-06-12 18:36:05 +0000
commit4c8c70e06a66649496afd6fed8ffa3c131c8de82 (patch)
tree28a5829b4314d3e5594b4821a5e06e7b7ae2fbe9 /gcc/real.c
parent058dcc25b74ed4d171182311a12d27272844ee16 (diff)
downloadgcc-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.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/gcc/real.c b/gcc/real.c
index 9a84329..b4d617f 100644
--- a/gcc/real.c
+++ b/gcc/real.c
@@ -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;