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 4eb9f0efd94221b3ab95f84554bbc92f112bf973..7219624449d5c423f91af9b6288de5ec3f0c964a 100644 |
--- a/base/third_party/dmg_fp/dtoa.cc |
+++ b/base/third_party/dmg_fp/dtoa.cc |
@@ -548,8 +548,10 @@ Balloc |
ACQUIRE_DTOA_LOCK(0); |
/* The k > Kmax case does not need ACQUIRE_DTOA_LOCK(0), */ |
/* but this case seems very unlikely. */ |
- if (k <= Kmax && (rv = freelist[k])) |
+ if (k <= Kmax && freelist[k]) { |
+ rv = freelist[k]; |
freelist[k] = rv->next; |
+ } |
else { |
x = 1 << k; |
#ifdef Omit_Private_Memory |
@@ -834,7 +836,8 @@ mult |
xc0 = c->x; |
#ifdef ULLong |
for(; xb < xbe; xc0++) { |
- if ((y = *xb++)) { |
+ y = *xb++; |
+ if (y) { |
x = xa; |
xc = xc0; |
carry = 0; |
@@ -916,16 +919,19 @@ pow5mult |
int i; |
static int p05[3] = { 5, 25, 125 }; |
- if ((i = k & 3)) |
+ i = k & 3; |
+ if (i) |
b = multadd(b, p05[i-1], 0); |
if (!(k >>= 2)) |
return b; |
- if (!(p5 = p5s)) { |
+ p5 = p5s; |
+ if (!p5) { |
/* first time */ |
#ifdef MULTIPLE_THREADS |
ACQUIRE_DTOA_LOCK(1); |
- if (!(p5 = p5s)) { |
+ p5 = p5s; |
+ if (!p5) { |
p5 = p5s = i2b(625); |
p5->next = 0; |
} |
@@ -943,10 +949,12 @@ pow5mult |
} |
if (!(k >>= 1)) |
break; |
- if (!(p51 = p5->next)) { |
+ p51 = p5->next; |
+ if (!p51) { |
#ifdef MULTIPLE_THREADS |
ACQUIRE_DTOA_LOCK(1); |
- if (!(p51 = p5->next)) { |
+ p51 = p5->next; |
+ if (!p51) { |
p51 = p5->next = mult(p5,p5); |
p51->next = 0; |
} |
@@ -997,7 +1005,8 @@ lshift |
z = *x++ >> k1; |
} |
while(x < xe); |
- if ((*x1 = z)) |
+ *x1 = z; |
+ if (*x1) |
++n1; |
} |
#else |
@@ -1299,21 +1308,25 @@ d2b |
z |= Exp_msk11; |
#endif |
#else |
- if ((de = (int)(d0 >> Exp_shift))) |
+ de = (int)(d0 >> Exp_shift); |
+ if (de) |
z |= Exp_msk1; |
#endif |
#ifdef Pack_32 |
- if ((y = d1)) { |
- if ((k = lo0bits(&y))) { |
+ y = d1; |
+ if (y) { |
+ k = lo0bits(&y); |
+ if (k) { |
x[0] = y | z << (32 - k); |
z >>= k; |
} |
else |
x[0] = y; |
+ x[1] = z; |
+ b->wds = x[1] ? 2 : 1; |
#ifndef Sudden_Underflow |
- i = |
+ i = b->wds; |
#endif |
- b->wds = (x[1] = z) ? 2 : 1; |
} |
else { |
k = lo0bits(&z); |
@@ -1536,7 +1549,7 @@ match |
int c, d; |
CONST char *s = *sp; |
- while((d = *t++)) { |
+ for(d = *t++; d; d = *t++) { |
if ((c = *++s) >= 'A' && c <= 'Z') |
c += 'a' - 'A'; |
if (c != d) |
@@ -1566,12 +1579,13 @@ hexnan |
udx0 = 1; |
s = *sp; |
/* allow optional initial 0x or 0X */ |
- while((c = *(CONST unsigned char*)(s+1)) && c <= ' ') |
+ for(c = *(CONST unsigned char*)(s+1); c && c <= ' '; c = *(CONST unsigned char*)(s+1)) |
++s; |
if (s[1] == '0' && (s[2] == 'x' || s[2] == 'X')) |
s += 2; |
- while((c = *(CONST unsigned char*)++s)) { |
- if ((c1 = hexdig[c])) |
+ for(c = *(CONST unsigned char*)++s; c; c = *(CONST unsigned char*)++s) { |
+ c1 = hexdig[c]; |
+ if (c1) |
c = c1 & 0xf; |
else if (c <= ' ') { |
if (udx0 && havedig) { |
@@ -1594,7 +1608,8 @@ hexnan |
*sp = s + 1; |
break; |
} |
- } while((c = *++s)); |
+ c = *++s; |
+ } while(c); |
break; |
} |
#endif |
@@ -2328,7 +2343,8 @@ bigcomp |
/* Now b/d = exactly half-way between the two floating-point values */ |
/* on either side of the input string. Compute first digit of b/d. */ |
- if (!(dig = quorem(b,d))) { |
+ dig = quorem(b,d); |
+ if (!dig) { |
b = multadd(b, 10, 0); /* very unlikely */ |
dig = quorem(b,d); |
} |
@@ -2336,7 +2352,8 @@ bigcomp |
/* Compare b/d with s0 */ |
for(i = 0; i < nd0; ) { |
- if ((dd = s0[i++] - '0' - dig)) |
+ dd = s0[i++] - '0' - dig; |
+ if (dd) |
goto ret; |
if (!b->x[0] && b->wds == 1) { |
if (i < nd) |
@@ -2347,7 +2364,8 @@ bigcomp |
dig = quorem(b,d); |
} |
for(j = bc->dp1; i++ < nd;) { |
- if ((dd = s0[j++] - '0' - dig)) |
+ dd = s0[j++] - '0' - dig; |
+ if (dd) |
goto ret; |
if (!b->x[0] && b->wds == 1) { |
if (i < nd) |
@@ -2747,7 +2765,8 @@ strtod |
/* Get starting approximation = rv * 10**e1 */ |
if (e1 > 0) { |
- if ((i = e1 & 15)) |
+ i = e1 & 15; |
+ if (i) |
dval(&rv) *= tens[i]; |
if (e1 &= ~15) { |
if (e1 > DBL_MAX_10_EXP) { |
@@ -2805,7 +2824,8 @@ strtod |
} |
else if (e1 < 0) { |
e1 = -e1; |
- if ((i = e1 & 15)) |
+ i = e1 & 15; |
+ if (i) |
dval(&rv) /= tens[i]; |
if (e1 >>= 4) { |
if (e1 >= 1 << n_bigtens) |
@@ -3456,7 +3476,7 @@ nrv_alloc(CONST char *s, char **rve, int n) |
char *rv, *t; |
t = rv = rv_alloc(n); |
- while((*t = *s++)) t++; |
+ for(*t = *s++; *t; *t = *s++) t++; |
if (rve) |
*rve = t; |
return rv; |
@@ -3645,10 +3665,9 @@ dtoa |
#endif |
b = d2b(&u, &be, &bbits); |
-#ifdef Sudden_Underflow |
i = (int)(word0(&u) >> Exp_shift1 & (Exp_mask>>Exp_shift1)); |
-#else |
- if ((i = (int)(word0(&u) >> Exp_shift1 & (Exp_mask>>Exp_shift1)))) { |
+#ifndef Sudden_Underflow |
+ if (i) { |
#endif |
dval(&d2) = dval(&u); |
word0(&d2) &= Frac_mask1; |
@@ -3803,13 +3822,16 @@ dtoa |
} |
dval(&u) /= ds; |
} |
- else if ((j1 = -k)) { |
- dval(&u) *= tens[j1 & 0xf]; |
- for(j = j1 >> 4; j; j >>= 1, i++) |
- if (j & 1) { |
- ieps++; |
- dval(&u) *= bigtens[i]; |
- } |
+ else { |
+ j1 = -k; |
+ if (j1) { |
+ dval(&u) *= tens[j1 & 0xf]; |
+ for(j = j1 >> 4; j; j >>= 1, i++) |
+ if (j & 1) { |
+ ieps++; |
+ dval(&u) *= bigtens[i]; |
+ } |
+ } |
} |
if (k_check && dval(&u) < 1. && ilim > 0) { |
if (ilim1 <= 0) |
@@ -3964,7 +3986,8 @@ dtoa |
Bfree(b); |
b = b1; |
} |
- if ((j = b5 - m5)) |
+ j = b5 - m5; |
+ if (j) |
b = pow5mult(b, j); |
} |
else |
@@ -4002,7 +4025,8 @@ dtoa |
* can do shifts and ors to compute the numerator for q. |
*/ |
#ifdef Pack_32 |
- if ((i = ((s5 ? 32 - hi0bits(S->x[S->wds-1]) : 1) + s2) & 0x1f)) |
+ i = ((s5 ? 32 - hi0bits(S->x[S->wds-1]) : 1) + s2) & 0x1f; |
+ if (i) |
i = 32 - i; |
#define iInc 28 |
#else |