summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--generic/tclBasic.c8
-rw-r--r--tests/expr.test4
2 files changed, 8 insertions, 4 deletions
diff --git a/generic/tclBasic.c b/generic/tclBasic.c
index 1649998..9073642 100644
--- a/generic/tclBasic.c
+++ b/generic/tclBasic.c
@@ -8224,7 +8224,9 @@ ExprIsUnorderedFunc(
if (type == TCL_NUMBER_NAN) {
result = 1;
} else {
- d = *((const double *) ptr);
+ if (Tcl_GetDoubleFromObj(interp, objv[1], &d) != TCL_OK) {
+ return TCL_ERROR;
+ }
result = (ClassifyDouble(d) == FP_NAN);
}
@@ -8234,7 +8236,9 @@ ExprIsUnorderedFunc(
if (type == TCL_NUMBER_NAN) {
result |= 1;
} else {
- d = *((const double *) ptr);
+ if (Tcl_GetDoubleFromObj(interp, objv[2], &d) != TCL_OK) {
+ return TCL_ERROR;
+ }
result |= (ClassifyDouble(d) == FP_NAN);
}
diff --git a/tests/expr.test b/tests/expr.test
index 76e5b6c..aca97a5 100644
--- a/tests/expr.test
+++ b/tests/expr.test
@@ -7397,8 +7397,8 @@ test expr-60.9 {float classification: basic arg handling} -body {
} -match glob -result *
# Big matrix of comparisons, but it's just a binary isinf()
-set values {1.0 -1.0 0.0 -0.0 1e-314 Inf -Inf NaN}
-set results {0 0 0 0 0 0 0 1}
+set values {1 -1 1.0 -1.0 0.0 -0.0 1e-314 Inf -Inf NaN}
+set results {0 0 0 0 0 0 0 0 0 1}
set ctr 0
foreach v1 $values r1 $results {
foreach v2 $values r2 $results {