Index: base/third_party/dmg_fp/dtoa.cc |
diff --git a/base/third_party/dmg_fp/dtoa.cc b/base/third_party/dmg_fp/dtoa.cc |
index 7219624449d5c423f91af9b6288de5ec3f0c964a..502c16cc72f3ccc7ff217434ebf011e07acbf4a7 100644 |
--- a/base/third_party/dmg_fp/dtoa.cc |
+++ b/base/third_party/dmg_fp/dtoa.cc |
@@ -652,7 +652,7 @@ multadd |
Bfree(b); |
b = b1; |
} |
- b->x[wds++] = carry; |
+ b->x[wds++] = (ULong)carry; |
b->wds = wds; |
} |
return b; |
@@ -847,7 +847,7 @@ mult |
*xc++ = z & FFFFFFFF; |
} |
while(x < xae); |
- *xc = carry; |
+ *xc = (ULong)carry; |
} |
} |
#else |
@@ -1511,7 +1511,7 @@ htinit(unsigned char *h, unsigned char *s, int inc) |
{ |
int i, j; |
for(i = 0; (j = s[i]) !=0; i++) |
- h[j] = i + inc; |
+ h[j] = (unsigned char)(i + inc); |
} |
static void |
@@ -3303,7 +3303,7 @@ strtod |
#ifdef Avoid_Underflow |
if (bc.scale && y <= 2*P*Exp_msk1) { |
if (aadj <= 0x7fffffff) { |
- if ((z = aadj) <= 0) |
+ if ((z = (ULong)aadj) <= 0) |
z = 1; |
aadj = z; |
aadj1 = bc.dsign ? aadj : -aadj; |
@@ -3859,9 +3859,9 @@ dtoa |
*/ |
dval(&eps) = 0.5/tens[ilim-1] - dval(&eps); |
for(i = 0;;) { |
- L = dval(&u); |
+ L = (long)dval(&u); |
dval(&u) -= L; |
- *s++ = '0' + (int)L; |
+ *s++ = '0' + (char)L; |
if (dval(&u) < dval(&eps)) |
goto ret1; |
if (1. - dval(&u) < dval(&eps)) |
@@ -3880,7 +3880,7 @@ dtoa |
L = (Long)(dval(&u)); |
if (!(dval(&u) -= L)) |
ilim = i; |
- *s++ = '0' + (int)L; |
+ *s++ = '0' + (char)L; |
if (i == ilim) { |
if (dval(&u) > 0.5 + dval(&eps)) |
goto bump_up; |
@@ -3923,7 +3923,7 @@ dtoa |
dval(&u) += ds; |
} |
#endif |
- *s++ = '0' + (int)L; |
+ *s++ = '0' + (char)L; |
if (!dval(&u)) { |
#ifdef SET_INEXACT |
inexact = 0; |
@@ -4101,7 +4101,7 @@ dtoa |
else if (!b->x[0] && b->wds <= 1) |
inexact = 0; |
#endif |
- *s++ = dig; |
+ *s++ = (char)dig; |
goto ret; |
} |
#endif |
@@ -4131,7 +4131,7 @@ dtoa |
goto round_9_up; |
} |
accept_dig: |
- *s++ = dig; |
+ *s++ = (char)dig; |
goto ret; |
} |
if (j1 > 0) { |
@@ -4144,13 +4144,13 @@ dtoa |
*s++ = '9'; |
goto roundoff; |
} |
- *s++ = dig + 1; |
+ *s++ = (char)dig + 1; |
scottmg
2014/09/25 06:44:16
(man this code is frightening)
this seems like it
Peter Kasting
2014/09/25 08:31:22
What's even worse is that we have multiple copies
|
goto ret; |
} |
#ifdef Honor_FLT_ROUNDS |
keep_dig: |
#endif |
- *s++ = dig; |
+ *s++ = (char)dig; |
if (i == ilim) |
break; |
b = multadd(b, 10, 0); |
@@ -4164,7 +4164,8 @@ dtoa |
} |
else |
for(i = 1;; i++) { |
- *s++ = dig = quorem(b,S) + '0'; |
+ dig = quorem(b,S) + '0'; |
+ *s++ = (char)dig; |
if (!b->x[0] && b->wds <= 1) { |
#ifdef SET_INEXACT |
inexact = 0; |