diff options
| -rw-r--r-- | generic/tclBasic.c | 8 | ||||
| -rw-r--r-- | tests/expr.test | 4 |
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 { |
