Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / base / third_party / dmg_fp / msvc_warnings.patch
1 diff --git a/base/third_party/dmg_fp/dtoa.cc b/base/third_party/dmg_fp/dtoa.cc
2 index 3312fa4..502c16c 100644
3 --- a/base/third_party/dmg_fp/dtoa.cc
4 +++ b/base/third_party/dmg_fp/dtoa.cc
5 @@ -548,8 +548,10 @@ Balloc
6         ACQUIRE_DTOA_LOCK(0);
7         /* The k > Kmax case does not need ACQUIRE_DTOA_LOCK(0), */
8         /* but this case seems very unlikely. */
9 -       if (k <= Kmax && (rv = freelist[k]))
10 +       if (k <= Kmax && freelist[k]) {
11 +               rv = freelist[k];
12                 freelist[k] = rv->next;
13 +               }
14         else {
15                 x = 1 << k;
16  #ifdef Omit_Private_Memory
17 @@ -650,7 +652,7 @@ multadd
18                         Bfree(b);
19                         b = b1;
20                         }
21 -               b->x[wds++] = carry;
22 +               b->x[wds++] = (ULong)carry;
23                 b->wds = wds;
24                 }
25         return b;
26 @@ -834,7 +836,8 @@ mult
27         xc0 = c->x;
28  #ifdef ULLong
29         for(; xb < xbe; xc0++) {
30 -               if ((y = *xb++)) {
31 +               y = *xb++;
32 +               if (y) {
33                         x = xa;
34                         xc = xc0;
35                         carry = 0;
36 @@ -844,7 +847,7 @@ mult
37                                 *xc++ = z & FFFFFFFF;
38                                 }
39                                 while(x < xae);
40 -                       *xc = carry;
41 +                       *xc = (ULong)carry;
42                         }
43                 }
44  #else
45 @@ -916,16 +919,19 @@ pow5mult
46         int i;
47         static int p05[3] = { 5, 25, 125 };
48  
49 -       if ((i = k & 3))
50 +       i = k & 3;
51 +       if (i)
52                 b = multadd(b, p05[i-1], 0);
53  
54         if (!(k >>= 2))
55                 return b;
56 -       if (!(p5 = p5s)) {
57 +       p5 = p5s;
58 +       if (!p5) {
59                 /* first time */
60  #ifdef MULTIPLE_THREADS
61                 ACQUIRE_DTOA_LOCK(1);
62 -               if (!(p5 = p5s)) {
63 +               p5 = p5s;
64 +               if (!p5) {
65                         p5 = p5s = i2b(625);
66                         p5->next = 0;
67                         }
68 @@ -943,10 +949,12 @@ pow5mult
69                         }
70                 if (!(k >>= 1))
71                         break;
72 -               if (!(p51 = p5->next)) {
73 +               p51 = p5->next;
74 +               if (!p51) {
75  #ifdef MULTIPLE_THREADS
76                         ACQUIRE_DTOA_LOCK(1);
77 -                       if (!(p51 = p5->next)) {
78 +                       p51 = p5->next;
79 +                       if (!p51) {
80                                 p51 = p5->next = mult(p5,p5);
81                                 p51->next = 0;
82                                 }
83 @@ -997,7 +1005,8 @@ lshift
84                         z = *x++ >> k1;
85                         }
86                         while(x < xe);
87 -               if ((*x1 = z))
88 +               *x1 = z;
89 +               if (*x1)
90                         ++n1;
91                 }
92  #else
93 @@ -1299,21 +1308,25 @@ d2b
94         z |= Exp_msk11;
95  #endif
96  #else
97 -       if ((de = (int)(d0 >> Exp_shift)))
98 +       de = (int)(d0 >> Exp_shift);
99 +       if (de)
100                 z |= Exp_msk1;
101  #endif
102  #ifdef Pack_32
103 -       if ((y = d1)) {
104 -               if ((k = lo0bits(&y))) {
105 +       y = d1;
106 +       if (y) {
107 +               k = lo0bits(&y);
108 +               if (k) {
109                         x[0] = y | z << (32 - k);
110                         z >>= k;
111                         }
112                 else
113                         x[0] = y;
114 +               x[1] = z;
115 +               b->wds = x[1] ? 2 : 1;
116  #ifndef Sudden_Underflow
117 -               i =
118 +               i = b->wds;
119  #endif
120 -                   b->wds = (x[1] = z) ? 2 : 1;
121                 }
122         else {
123                 k = lo0bits(&z);
124 @@ -1498,7 +1511,7 @@ htinit(unsigned char *h, unsigned char *s, int inc)
125  {
126         int i, j;
127         for(i = 0; (j = s[i]) !=0; i++)
128 -               h[j] = i + inc;
129 +               h[j] = (unsigned char)(i + inc);
130         }
131  
132   static void
133 @@ -1536,7 +1549,7 @@ match
134         int c, d;
135         CONST char *s = *sp;
136  
137 -       while((d = *t++)) {
138 +       for(d = *t++; d; d = *t++) {
139                 if ((c = *++s) >= 'A' && c <= 'Z')
140                         c += 'a' - 'A';
141                 if (c != d)
142 @@ -1566,12 +1579,13 @@ hexnan
143         udx0 = 1;
144         s = *sp;
145         /* allow optional initial 0x or 0X */
146 -       while((c = *(CONST unsigned char*)(s+1)) && c <= ' ')
147 +       for(c = *(CONST unsigned char*)(s+1); c && c <= ' '; c = *(CONST unsigned char*)(s+1))
148                 ++s;
149         if (s[1] == '0' && (s[2] == 'x' || s[2] == 'X'))
150                 s += 2;
151 -       while((c = *(CONST unsigned char*)++s)) {
152 -               if ((c1 = hexdig[c]))
153 +       for(c = *(CONST unsigned char*)++s; c; c = *(CONST unsigned char*)++s) {
154 +               c1 = hexdig[c];
155 +               if (c1)
156                         c  = c1 & 0xf;
157                 else if (c <= ' ') {
158                         if (udx0 && havedig) {
159 @@ -1594,7 +1608,8 @@ hexnan
160                                         *sp = s + 1;
161                                         break;
162                                         }
163 -                               } while((c = *++s));
164 +                               c = *++s;
165 +                               } while(c);
166                         break;
167                         }
168  #endif
169 @@ -2328,7 +2343,8 @@ bigcomp
170         /* Now b/d = exactly half-way between the two floating-point values */
171         /* on either side of the input string.  Compute first digit of b/d. */
172  
173 -       if (!(dig = quorem(b,d))) {
174 +       dig = quorem(b,d);
175 +       if (!dig) {
176                 b = multadd(b, 10, 0);  /* very unlikely */
177                 dig = quorem(b,d);
178                 }
179 @@ -2336,7 +2352,8 @@ bigcomp
180         /* Compare b/d with s0 */
181  
182         for(i = 0; i < nd0; ) {
183 -               if ((dd = s0[i++] - '0' - dig))
184 +               dd = s0[i++] - '0' - dig;
185 +               if (dd)
186                         goto ret;
187                 if (!b->x[0] && b->wds == 1) {
188                         if (i < nd)
189 @@ -2347,7 +2364,8 @@ bigcomp
190                 dig = quorem(b,d);
191                 }
192         for(j = bc->dp1; i++ < nd;) {
193 -               if ((dd = s0[j++] - '0' - dig))
194 +               dd = s0[j++] - '0' - dig;
195 +               if (dd)
196                         goto ret;
197                 if (!b->x[0] && b->wds == 1) {
198                         if (i < nd)
199 @@ -2747,7 +2765,8 @@ strtod
200         /* Get starting approximation = rv * 10**e1 */
201  
202         if (e1 > 0) {
203 -               if ((i = e1 & 15))
204 +               i = e1 & 15;
205 +               if (i)
206                         dval(&rv) *= tens[i];
207                 if (e1 &= ~15) {
208                         if (e1 > DBL_MAX_10_EXP) {
209 @@ -2805,7 +2824,8 @@ strtod
210                 }
211         else if (e1 < 0) {
212                 e1 = -e1;
213 -               if ((i = e1 & 15))
214 +               i = e1 & 15;
215 +               if (i)
216                         dval(&rv) /= tens[i];
217                 if (e1 >>= 4) {
218                         if (e1 >= 1 << n_bigtens)
219 @@ -3283,7 +3303,7 @@ strtod
220  #ifdef Avoid_Underflow
221                         if (bc.scale && y <= 2*P*Exp_msk1) {
222                                 if (aadj <= 0x7fffffff) {
223 -                                       if ((z = aadj) <= 0)
224 +                                       if ((z = (ULong)aadj) <= 0)
225                                                 z = 1;
226                                         aadj = z;
227                                         aadj1 = bc.dsign ? aadj : -aadj;
228 @@ -3456,7 +3476,7 @@ nrv_alloc(CONST char *s, char **rve, int n)
229         char *rv, *t;
230  
231         t = rv = rv_alloc(n);
232 -       while((*t = *s++)) t++;
233 +       for(*t = *s++; *t; *t = *s++) t++;
234         if (rve)
235                 *rve = t;
236         return rv;
237 @@ -3569,7 +3589,7 @@ dtoa
238         int denorm;
239         ULong x;
240  #endif
241 -       Bigint *b, *b1, *delta, *mlo, *mhi, *S;
242 +       Bigint *b, *b1, *delta, *mlo = NULL, *mhi, *S;
243         U d2, eps, u;
244         double ds;
245         char *s, *s0;
246 @@ -3645,10 +3665,9 @@ dtoa
247  #endif
248  
249         b = d2b(&u, &be, &bbits);
250 -#ifdef Sudden_Underflow
251         i = (int)(word0(&u) >> Exp_shift1 & (Exp_mask>>Exp_shift1));
252 -#else
253 -       if ((i = (int)(word0(&u) >> Exp_shift1 & (Exp_mask>>Exp_shift1)))) {
254 +#ifndef Sudden_Underflow
255 +       if (i) {
256  #endif
257                 dval(&d2) = dval(&u);
258                 word0(&d2) &= Frac_mask1;
259 @@ -3803,13 +3822,16 @@ dtoa
260                                         }
261                         dval(&u) /= ds;
262                         }
263 -               else if ((j1 = -k)) {
264 -                       dval(&u) *= tens[j1 & 0xf];
265 -                       for(j = j1 >> 4; j; j >>= 1, i++)
266 -                               if (j & 1) {
267 -                                       ieps++;
268 -                                       dval(&u) *= bigtens[i];
269 -                                       }
270 +               else {
271 +                       j1 = -k;
272 +                       if (j1) {
273 +                               dval(&u) *= tens[j1 & 0xf];
274 +                               for(j = j1 >> 4; j; j >>= 1, i++)
275 +                                       if (j & 1) {
276 +                                               ieps++;
277 +                                               dval(&u) *= bigtens[i];
278 +                                               }
279 +                               }
280                         }
281                 if (k_check && dval(&u) < 1. && ilim > 0) {
282                         if (ilim1 <= 0)
283 @@ -3837,9 +3859,9 @@ dtoa
284                          */
285                         dval(&eps) = 0.5/tens[ilim-1] - dval(&eps);
286                         for(i = 0;;) {
287 -                               L = dval(&u);
288 +                               L = (long)dval(&u);
289                                 dval(&u) -= L;
290 -                               *s++ = '0' + (int)L;
291 +                               *s++ = '0' + (char)L;
292                                 if (dval(&u) < dval(&eps))
293                                         goto ret1;
294                                 if (1. - dval(&u) < dval(&eps))
295 @@ -3858,7 +3880,7 @@ dtoa
296                                 L = (Long)(dval(&u));
297                                 if (!(dval(&u) -= L))
298                                         ilim = i;
299 -                               *s++ = '0' + (int)L;
300 +                               *s++ = '0' + (char)L;
301                                 if (i == ilim) {
302                                         if (dval(&u) > 0.5 + dval(&eps))
303                                                 goto bump_up;
304 @@ -3901,7 +3923,7 @@ dtoa
305                                 dval(&u) += ds;
306                                 }
307  #endif
308 -                       *s++ = '0' + (int)L;
309 +                       *s++ = '0' + (char)L;
310                         if (!dval(&u)) {
311  #ifdef SET_INEXACT
312                                 inexact = 0;
313 @@ -3964,7 +3986,8 @@ dtoa
314                                 Bfree(b);
315                                 b = b1;
316                                 }
317 -                       if ((j = b5 - m5))
318 +                       j = b5 - m5;
319 +                       if (j)
320                                 b = pow5mult(b, j);
321                         }
322                 else
323 @@ -4002,7 +4025,8 @@ dtoa
324          * can do shifts and ors to compute the numerator for q.
325          */
326  #ifdef Pack_32
327 -       if ((i = ((s5 ? 32 - hi0bits(S->x[S->wds-1]) : 1) + s2) & 0x1f))
328 +       i = ((s5 ? 32 - hi0bits(S->x[S->wds-1]) : 1) + s2) & 0x1f;
329 +       if (i)
330                 i = 32 - i;
331  #define iInc 28
332  #else
333 @@ -4077,7 +4101,7 @@ dtoa
334                                 else if (!b->x[0] && b->wds <= 1)
335                                         inexact = 0;
336  #endif
337 -                               *s++ = dig;
338 +                               *s++ = (char)dig;
339                                 goto ret;
340                                 }
341  #endif
342 @@ -4107,7 +4131,7 @@ dtoa
343                                                 goto round_9_up;
344                                         }
345   accept_dig:
346 -                               *s++ = dig;
347 +                               *s++ = (char)dig;
348                                 goto ret;
349                                 }
350                         if (j1 > 0) {
351 @@ -4120,13 +4144,13 @@ dtoa
352                                         *s++ = '9';
353                                         goto roundoff;
354                                         }
355 -                               *s++ = dig + 1;
356 +                               *s++ = (char)dig + 1;
357                                 goto ret;
358                                 }
359  #ifdef Honor_FLT_ROUNDS
360   keep_dig:
361  #endif
362 -                       *s++ = dig;
363 +                       *s++ = (char)dig;
364                         if (i == ilim)
365                                 break;
366                         b = multadd(b, 10, 0);
367 @@ -4140,7 +4164,8 @@ dtoa
368                 }
369         else
370                 for(i = 1;; i++) {
371 -                       *s++ = dig = quorem(b,S) + '0';
372 +                       dig = quorem(b,S) + '0';
373 +                       *s++ = (char)dig;
374                         if (!b->x[0] && b->wds <= 1) {
375  #ifdef SET_INEXACT
376                                 inexact = 0;
377 diff --git a/base/third_party/dmg_fp/g_fmt.cc b/base/third_party/dmg_fp/g_fmt.cc
378 index d864eb7..bfa358d 100644
379 --- a/base/third_party/dmg_fp/g_fmt.cc
380 +++ b/base/third_party/dmg_fp/g_fmt.cc
381 @@ -46,14 +46,14 @@ g_fmt(register char *b, double x)
382         if (sign)
383                 *b++ = '-';
384         if (decpt == 9999) /* Infinity or Nan */ {
385 -               while((*b++ = *s++)) {}
386 +               for(*b = *s++; *b++; *b = *s++) {}
387                 goto done0;
388                 }
389         if (decpt <= -4 || decpt > se - s + 5) {
390                 *b++ = *s++;
391                 if (*s) {
392                         *b++ = '.';
393 -                       while((*b = *s++))
394 +                       for(*b = *s++; *b; *b = *s++)
395                                 b++;
396                         }
397                 *b++ = 'e';
398 @@ -67,7 +67,7 @@ g_fmt(register char *b, double x)
399                 for(j = 2, k = 10; 10*k <= decpt; j++, k *= 10) {}
400                 for(;;) {
401                         i = decpt / k;
402 -                       *b++ = i + '0';
403 +                       *b++ = (char)i + '0';
404                         if (--j <= 0)
405                                 break;
406                         decpt -= i*k;
407 @@ -79,10 +79,10 @@ g_fmt(register char *b, double x)
408                 *b++ = '.';
409                 for(; decpt < 0; decpt++)
410                         *b++ = '0';
411 -               while((*b++ = *s++)) {}
412 +               for(*b = *s++; *b++; *b = *s++) {}
413                 }
414         else {
415 -               while((*b = *s++)) {
416 +               for(*b = *s++; *b; *b = *s++) {
417                         b++;
418                         if (--decpt == 0 && *s)
419                                 *b++ = '.';