diff options
author | rmax <rmax> | 2005-12-12 11:28:22 (GMT) |
---|---|---|
committer | rmax <rmax> | 2005-12-12 11:28:22 (GMT) |
commit | 7a116443a870099b88001b8017e2100cc8ee0937 (patch) | |
tree | df0dd8c2d195a2222f37a8b228cc6b19f6106260 /generic | |
parent | 935e1e7bff4e2328bdf256ef524c4a6a3aa9947e (diff) | |
download | tcl-7a116443a870099b88001b8017e2100cc8ee0937.zip tcl-7a116443a870099b88001b8017e2100cc8ee0937.tar.gz tcl-7a116443a870099b88001b8017e2100cc8ee0937.tar.bz2 |
* generic/tclExecute.c (ExprAbsFunc): fixed the abs(MIN_INT) case
so that it doesn't break on compilers that don't assume integers
to wrap around (e.g. gcc-4.1.0).
Diffstat (limited to 'generic')
-rw-r--r-- | generic/tclExecute.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/generic/tclExecute.c b/generic/tclExecute.c index c238a98..34e4ec1 100644 --- a/generic/tclExecute.c +++ b/generic/tclExecute.c @@ -11,7 +11,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclExecute.c,v 1.94.2.17 2005/10/28 03:26:32 mdejong Exp $ + * RCS: @(#) $Id: tclExecute.c,v 1.94.2.18 2005/12/12 11:28:22 rmax Exp $ */ #include "tclInt.h" @@ -5074,8 +5074,7 @@ ExprAbsFunc(interp, eePtr, clientData) if (valuePtr->typePtr == &tclIntType) { i = valuePtr->internalRep.longValue; if (i < 0) { - iResult = -i; - if (iResult < 0) { + if (i == LONG_MIN) { #ifdef TCL_WIDE_INT_IS_LONG Tcl_SetObjResult(interp, Tcl_NewStringObj( "integer value too large to represent", -1)); @@ -5094,6 +5093,7 @@ ExprAbsFunc(interp, eePtr, clientData) #endif } + iResult = -i; } else { iResult = i; } |