summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2025-04-02 21:45:59 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2025-04-02 21:45:59 (GMT)
commit9efa1e936854fe730fab10e38a279989a106ea5b (patch)
tree3f55560b743ec164404635e9b05f9b718b921363
parent79ed51d25a48dce0d084a2c57f199821e58eac99 (diff)
parenteb47492d3f5f7b030861e9184d51dcb8a26cb00e (diff)
downloadtcl-9efa1e936854fe730fab10e38a279989a106ea5b.zip
tcl-9efa1e936854fe730fab10e38a279989a106ea5b.tar.gz
tcl-9efa1e936854fe730fab10e38a279989a106ea5b.tar.bz2
Fix -Wconversion warnings
-rw-r--r--generic/tclStrToD.c100
1 files changed, 50 insertions, 50 deletions
diff --git a/generic/tclStrToD.c b/generic/tclStrToD.c
index 460df40..b0dc3d3 100644
--- a/generic/tclStrToD.c
+++ b/generic/tclStrToD.c
@@ -298,10 +298,10 @@ static const Tcl_WideUInt wuipow5[] = {
static int AccumulateDecimalDigit(unsigned, int,
Tcl_WideUInt *, mp_int *, int);
static double MakeHighPrecisionDouble(int signum,
- mp_int *significand, int nSigDigs, long exponent);
+ mp_int *significand, int nSigDigs, int exponent);
static double MakeLowPrecisionDouble(int signum,
Tcl_WideUInt significand, int nSigDigs,
- long exponent);
+ int exponent);
#ifdef IEEE_FLOATING_POINT
static double MakeNaN(int signum, Tcl_WideUInt tag);
#endif
@@ -526,7 +526,7 @@ TclParseNumber(
* point. */
int exponentSignum = 0; /* Signum of the exponent of a floating point
* number. */
- long exponent = 0; /* Exponent of a floating point number. */
+ int exponent = 0; /* Exponent of a floating point number. */
const char *p; /* Pointer to next character to scan. */
Tcl_Size len; /* Number of characters remaining after p. */
const char *acceptPoint; /* Pointer to position after last character in
@@ -583,7 +583,7 @@ TclParseNumber(
const char *before, *after;
if (p==bytes) {
- /* Not allowed at beginning */
+ /* Not allowed at beginning */
goto endgame;
}
/*
@@ -1084,17 +1084,17 @@ TclParseNumber(
case EXPONENT:
/*
* Found an exponent with at least one digit. Accumulate it,
- * making sure to hard-pin it to LONG_MAX on overflow.
+ * making sure to hard-pin it to INT_MAX on overflow.
*/
acceptState = state;
acceptPoint = p;
acceptLen = len;
if (isdigit(UCHAR(c))) {
- if (exponent < (LONG_MAX - 9) / 10) {
+ if (exponent < (INT_MAX - 9) / 10) {
exponent = 10 * exponent + (c - '0');
} else {
- exponent = LONG_MAX;
+ exponent = INT_MAX;
}
state = EXPONENT;
break;
@@ -1464,19 +1464,19 @@ TclParseNumber(
/*
* Adjust the exponent for the number of trailing zeros that
* have not been accumulated, and the number of digits after
- * the decimal point. Pin any overflow to LONG_MAX/LONG_MIN
+ * the decimal point. Pin any overflow to INT_MAX/INT_MIN
* respectively.
*/
if (exponent >= 0) {
- if (exponent - numDigitsAfterDp > LONG_MAX - numTrailZeros) {
- exponent = LONG_MAX;
+ if (exponent - numDigitsAfterDp > INT_MAX - numTrailZeros) {
+ exponent = INT_MAX;
} else {
exponent = exponent - numDigitsAfterDp + numTrailZeros;
}
} else {
- if (exponent + numTrailZeros < LONG_MIN + numDigitsAfterDp) {
- exponent = LONG_MIN;
+ if (exponent + numTrailZeros < INT_MIN + numDigitsAfterDp) {
+ exponent = INT_MIN;
} else {
exponent = exponent + numTrailZeros - numDigitsAfterDp;
}
@@ -1690,7 +1690,7 @@ MakeLowPrecisionDouble(
int signum, /* 1 if the number is negative, 0 otherwise */
Tcl_WideUInt significand, /* Significand of the number */
int numSigDigs, /* Number of digits in the significand */
- long exponent) /* Power of ten */
+ int exponent) /* Power of ten */
{
TCL_IEEE_DOUBLE_ROUNDING_DECL
@@ -1729,8 +1729,8 @@ MakeLowPrecisionDouble(
* without special handling.
*/
- retval = (double)
- ((Tcl_WideInt)significand * pow10vals[exponent]);
+ retval =
+ ((double)significand * pow10vals[exponent]);
goto returnValue;
} else {
int diff = QUICK_MAX - numSigDigs;
@@ -1743,8 +1743,8 @@ MakeLowPrecisionDouble(
* with only one roundoff.
*/
- volatile double factor = (double)
- ((Tcl_WideInt)significand * pow10vals[diff]);
+ volatile double factor =
+ ((double)significand * pow10vals[diff]);
retval = factor * pow10vals[exponent-diff];
goto returnValue;
}
@@ -1757,8 +1757,8 @@ MakeLowPrecisionDouble(
* only one rounding.
*/
- retval = (double)
- ((Tcl_WideInt)significand / pow10vals[-exponent]);
+ retval =
+ ((double)significand / pow10vals[-exponent]);
goto returnValue;
}
}
@@ -1817,7 +1817,7 @@ MakeHighPrecisionDouble(
int signum, /* 1=negative, 0=nonnegative */
mp_int *significand, /* Exact significand of the number */
int numSigDigs, /* Number of significant digits */
- long exponent) /* Power of 10 by which to multiply */
+ int exponent) /* Power of 10 by which to multiply */
{
TCL_IEEE_DOUBLE_ROUNDING_DECL
@@ -1876,9 +1876,9 @@ MakeHighPrecisionDouble(
goto returnValue;
}
retval = SafeLdExp(retval, machexp);
- if (tiny == 0.0) {
- tiny = SafeLdExp(1.0, DBL_MIN_EXP * log2FLT_RADIX - mantBits);
- }
+ if (tiny == 0.0) {
+ tiny = SafeLdExp(1.0, DBL_MIN_EXP * log2FLT_RADIX - mantBits);
+ }
if (retval < tiny) {
retval = tiny;
}
@@ -2310,12 +2310,12 @@ RequiredPrecision(
Tcl_WideUInt w) /* Number to interrogate. */
{
int rv;
- unsigned long wi;
+ unsigned int wi;
- if (w & ((Tcl_WideUInt) 0xFFFFFFFF << 32)) {
- wi = (unsigned long) (w >> 32); rv = 32;
+ if (w & ((Tcl_WideUInt)0xFFFFFFFF << 32)) {
+ wi = (unsigned int)(w >> 32); rv = 32;
} else {
- wi = (unsigned long) w; rv = 0;
+ wi = (unsigned int)w; rv = 0;
}
if (wi & 0xFFFF0000) {
wi >>= 16; rv += 16;
@@ -2842,7 +2842,7 @@ ShorteningQuickFormat(
digit = (int) d;
d -= digit;
- *s++ = '0' + digit;
+ *s++ = '0' + (char)digit;
/*
* Truncate the conversion if the string of digits is within 1/2 ulp
@@ -2915,12 +2915,12 @@ StrictQuickFormat(
* Extract a digit.
*/
- digit = (int) d;
+ digit = (int)d;
d -= digit;
if (d == 0.0) {
ilim = i;
}
- *s++ = '0' + digit;
+ *s++ = '0' + (char)digit;
/*
* When the given digit count is reached, handle trailing strings of 0
@@ -3205,7 +3205,7 @@ ShorteningInt64Conversion(
* Stash the current digit.
*/
- *s++ = '0' + digit;
+ *s++ = '0' + (char)digit;
break;
}
@@ -3222,7 +3222,7 @@ ShorteningInt64Conversion(
break;
}
++digit;
- *s++ = '0' + digit;
+ *s++ = '0' + (char)digit;
break;
}
@@ -3230,7 +3230,7 @@ ShorteningInt64Conversion(
* Have we converted all the requested digits?
*/
- *s++ = '0' + digit;
+ *s++ = '0' + (char)digit;
if (i == ilim) {
if (2*b > S || (2*b == S && (digit & 1) != 0)) {
s = BumpUp(s, retval, &k);
@@ -3337,7 +3337,7 @@ StrictInt64Conversion(
* Have we converted all the requested digits?
*/
- *s++ = '0' + digit;
+ *s++ = '0' + (char)digit;
if (i == ilim) {
if (2*b > S || (2*b == S && (digit & 1) != 0)) {
s = BumpUp(s, retval, &k);
@@ -3604,7 +3604,7 @@ ShorteningBignumConversionPowD(
* Stash the last digit.
*/
- *s++ = '0' + digit;
+ *s++ = '0' + (char)digit;
break;
}
@@ -3621,7 +3621,7 @@ ShorteningBignumConversionPowD(
break;
}
++digit;
- *s++ = '0' + digit;
+ *s++ = '0' + (char)digit;
break;
}
@@ -3629,7 +3629,7 @@ ShorteningBignumConversionPowD(
* Have we converted all the requested digits?
*/
- *s++ = '0' + digit;
+ *s++ = '0' + (char)digit;
if (i == ilim) {
if (ShouldBankerRoundUpPowD(&b, sd, digit&1)) {
s = BumpUp(s, retval, &k);
@@ -3760,7 +3760,7 @@ StrictBignumConversionPowD(
* Have we converted all the requested digits?
*/
- *s++ = '0' + digit;
+ *s++ = '0' + (char)digit;
if (i == ilim) {
if (ShouldBankerRoundUpPowD(&b, sd, digit&1)) {
s = BumpUp(s, retval, &k);
@@ -3977,7 +3977,7 @@ ShorteningBignumConversion(
if (dig.used > 1 || dig.dp[0] >= 10) {
Tcl_Panic("wrong digit!");
}
- digit = dig.dp[0];
+ digit = (int)dig.dp[0];
/*
* Does the current digit leave us with a remainder small enough to
@@ -3995,7 +3995,7 @@ ShorteningBignumConversion(
break;
}
}
- *s++ = '0' + digit;
+ *s++ = '0' + (char)digit;
break;
}
@@ -4012,7 +4012,7 @@ ShorteningBignumConversion(
s = BumpUp(s, retval, &k);
break;
}
- *s++ = '0' + digit;
+ *s++ = '0' + (char)digit;
break;
}
@@ -4020,7 +4020,7 @@ ShorteningBignumConversion(
* Have we converted all the requested digits?
*/
- *s++ = '0' + digit;
+ *s++ = '0' + (char)digit;
if ((err == MP_OKAY) && (i == ilim)) {
err = mp_mul_2d(&b, 1, &b);
if (ShouldBankerRoundUp(&b, &S, digit&1)) {
@@ -4189,13 +4189,13 @@ StrictBignumConversion(
if (dig.used > 1 || dig.dp[0] >= 10) {
Tcl_Panic("wrong digit!");
}
- digit = dig.dp[0];
+ digit = (int)dig.dp[0];
/*
* Is a single digit all that was requested?
*/
- *s++ = '0' + digit;
+ *s++ = '0' + (char)digit;
if (++i >= ilim) {
if ((mp_mul_2d(&b, 1, &b) == MP_OKAY) && ShouldBankerRoundUp(&b, &S, digit&1)) {
s = BumpUp(s, retval, &k);
@@ -4241,11 +4241,11 @@ StrictBignumConversion(
if ((err != MP_OKAY) || (mp_div(&b, &S, &dig, &b) != MP_OKAY) || (dig.used > 1)) {
Tcl_Panic("wrong digit!");
}
- digit = dig.dp[0];
+ digit = (int)dig.dp[0];
for (j = g-1; j >= 0; --j) {
int t = itens[j];
- *s++ = digit / t + '0';
+ *s++ = (char)(digit / t + '0');
digit %= t;
}
i += g;
@@ -4931,7 +4931,7 @@ TclBignumToDouble(
}
r = 0.0;
for (i = b.used-1; i>=0; --i) {
- r = ldexp(r, MP_DIGIT_BIT) + b.dp[i];
+ r = ldexp(r, MP_DIGIT_BIT) + (double)b.dp[i];
}
mp_clear(&b);
@@ -5009,7 +5009,7 @@ TclCeil(
return 0.0;
}
for (i=b.used-1 ; i>=0 ; --i) {
- r = ldexp(r, MP_DIGIT_BIT) + b.dp[i];
+ r = ldexp(r, MP_DIGIT_BIT) + (double)b.dp[i];
}
r = ldexp(r, bits - mantBits);
}
@@ -5064,7 +5064,7 @@ TclFloor(
return 0.0;
}
for (i=b.used-1 ; i>=0 ; --i) {
- r = ldexp(r, MP_DIGIT_BIT) + b.dp[i];
+ r = ldexp(r, MP_DIGIT_BIT) + (double)b.dp[i];
}
r = ldexp(r, bits - mantBits);
}
@@ -5130,7 +5130,7 @@ BignumToBiasedFrExp(
r = 0.0;
if (err == MP_OKAY) {
for (i=b.used-1; i>=0; --i) {
- r = ldexp(r, MP_DIGIT_BIT) + b.dp[i];
+ r = ldexp(r, MP_DIGIT_BIT) + (double)b.dp[i];
}
}
mp_clear(&b);