summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/data.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/data.c b/src/data.c
index 59e9e928d6e..adb8d38e3aa 100644
--- a/src/data.c
+++ b/src/data.c
@@ -1650,6 +1650,10 @@ arith_driver (code, nargs, args)
}
#ifdef LISP_FLOAT_TYPE
+
+#undef isnan
+#define isnan(x) ((x) != (x))
+
Lisp_Object
float_arith_driver (accum, argnum, code, nargs, args)
double accum;
@@ -1707,11 +1711,11 @@ float_arith_driver (accum, argnum, code, nargs, args)
case Alogxor:
return wrong_type_argument (Qinteger_or_marker_p, val);
case Amax:
- if (!argnum || next > accum)
+ if (!argnum || isnan (next) || next > accum)
accum = next;
break;
case Amin:
- if (!argnum || next < accum)
+ if (!argnum || isnan (next) || next < accum)
accum = next;
break;
}