diff options
Diffstat (limited to 'generic/tclExecute.c')
-rw-r--r-- | generic/tclExecute.c | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/generic/tclExecute.c b/generic/tclExecute.c index 9a906ea..6c89523 100644 --- a/generic/tclExecute.c +++ b/generic/tclExecute.c @@ -14,7 +14,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.438 2009/06/02 19:11:12 dgp Exp $ + * RCS: @(#) $Id: tclExecute.c,v 1.439 2009/06/03 23:12:11 das Exp $ */ #include "tclInt.h" @@ -6113,8 +6113,8 @@ TclExecuteByteCode( goto overflow; } #if (LONG_MAX == 0x7fffffff) - if (l2 - 2 < MaxBase32Size - && l1 <= MaxBase32[l2 - 2] + if (l2 - 2 < (long)MaxBase32Size + && l1 <= MaxBase32[l2 - 2] && l1 >= -MaxBase32[l2 - 2]) { /* * Small powers of 32-bit integers. @@ -6158,8 +6158,8 @@ TclExecuteByteCode( TRACE(("%s\n", O2S(valuePtr))); NEXT_INST_F(1, 1, 0); } - if (l1 - 3 >= 0 && l1 -2 < Exp32IndexSize - && l2 - 2 < Exp32ValueSize + MaxBase32Size) { + if (l1 - 3 >= 0 && l1 -2 < (long)Exp32IndexSize + && l2 - 2 < (long)(Exp32ValueSize + MaxBase32Size)) { unsigned short base = Exp32Index[l1 - 3] + (unsigned short) (l2 - 2 - MaxBase32Size); @@ -6180,8 +6180,8 @@ TclExecuteByteCode( NEXT_INST_F(1, 1, 0); } } - if (-l1 - 3 >= 0 && -l1 - 2 < Exp32IndexSize - && l2 - 2 < Exp32ValueSize + MaxBase32Size) { + if (-l1 - 3 >= 0 && -l1 - 2 < (long)Exp32IndexSize + && l2 - 2 < (long)(Exp32ValueSize + MaxBase32Size)) { unsigned short base = Exp32Index[-l1 - 3] + (unsigned short) (l2 - 2 - MaxBase32Size); if (base < Exp32Index[-l1 - 2]) { @@ -6216,7 +6216,7 @@ TclExecuteByteCode( } else { goto overflow; } - if (l2 - 2 < MaxBase64Size + if (l2 - 2 < (long)MaxBase64Size && w1 <= MaxBase64[l2 - 2] && w1 >= -MaxBase64[l2 - 2]) { /* @@ -6308,8 +6308,8 @@ TclExecuteByteCode( * Handle cases of powers > 16 that still fit in a 64-bit word by * doing table lookup. */ - if (w1 - 3 >= 0 && w1 - 2 < Exp64IndexSize - && l2 - 2 < Exp64ValueSize + MaxBase64Size) { + if (w1 - 3 >= 0 && w1 - 2 < (long)Exp64IndexSize + && l2 - 2 < (long)(Exp64ValueSize + MaxBase64Size)) { unsigned short base = Exp64Index[w1 - 3] + (unsigned short) (l2 - 2 - MaxBase64Size); @@ -6331,8 +6331,8 @@ TclExecuteByteCode( } } - if (-w1 - 3 >= 0 && -w1 - 2 < Exp64IndexSize - && l2 - 2 < Exp64ValueSize + MaxBase64Size) { + if (-w1 - 3 >= 0 && -w1 - 2 < (long)Exp64IndexSize + && l2 - 2 < (long)(Exp64ValueSize + MaxBase64Size)) { unsigned short base = Exp64Index[-w1 - 3] + (unsigned short) (l2 - 2 - MaxBase64Size); |