aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/adt/float.c
diff options
context:
space:
mode:
authorThomas G. Lockhart <lockhart@fourpalms.org>1997-06-03 13:58:06 +0000
committerThomas G. Lockhart <lockhart@fourpalms.org>1997-06-03 13:58:06 +0000
commitfe74581fa07acb3876dc594a7dec209050d48116 (patch)
treef271aa486398dc150b6b16453272a682e60c3e5a /src/backend/utils/adt/float.c
parent93ac35f06c6ad05535e2d29f4027bf1722299870 (diff)
downloadpostgresql-fe74581fa07acb3876dc594a7dec209050d48116.tar.gz
postgresql-fe74581fa07acb3876dc594a7dec209050d48116.zip
Use finite() macro if available to check returns from pow() and exp().
Diffstat (limited to 'src/backend/utils/adt/float.c')
-rw-r--r--src/backend/utils/adt/float.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/backend/utils/adt/float.c b/src/backend/utils/adt/float.c
index aa995991165..f5bbbd61c9e 100644
--- a/src/backend/utils/adt/float.c
+++ b/src/backend/utils/adt/float.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/adt/float.c,v 1.15 1997/05/14 04:35:10 thomas Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/float.c,v 1.16 1997/06/03 13:58:06 thomas Exp $
*
*-------------------------------------------------------------------------
*/
@@ -974,9 +974,15 @@ float64 dpow(float64 arg1, float64 arg2)
tmp1 = *arg1;
tmp2 = *arg2;
+#ifndef finite
errno = 0;
+#endif
*result = (float64data) pow(tmp1, tmp2);
+#ifndef finite
if (errno == ERANGE)
+#else
+ if (!finite(*result))
+#endif
elog(WARN, "pow() returned a floating point out of the range\n");
CheckFloat8Val(*result);
@@ -998,9 +1004,15 @@ float64 dexp(float64 arg1)
result = (float64) palloc(sizeof(float64data));
tmp = *arg1;
+#ifndef finite
errno = 0;
+#endif
*result = (float64data) exp(tmp);
+#ifndef finite
if (errno == ERANGE)
+#else
+ if (!finite(*result))
+#endif
elog(WARN, "exp() returned a floating point out of range\n");
CheckFloat8Val(*result);