1 /* This code used to crash fold_convert due to PRE
2    wanting to fold_convert from a REAL_TYPE to an INTEGER_TYPE.  */
3 typedef unsigned int uint32_t;
4 union double_union
5 {
6   double d;
7   uint32_t i[2];
8 };
9 struct _Jv_reent
10 {
11   int _errno;
12 };
_Jv_strtod_r(struct _Jv_reent * ptr,char ** se)13 _Jv_strtod_r (struct _Jv_reent *ptr, char **se)
14 {
15   int bb2, sign;
16   double aadj, aadj1, adj;
17   unsigned long y, z;
18   union double_union rv, *bs = ((void *) 0), *delta = ((void *) 0);
19   {
20   ovfl:ptr->_errno = 34;
21     {
22       (((uint32_t) 0xfffffL) | ((uint32_t) 0x100000L) * (1024 + 1023 - 1));
23     }
24     if ((aadj = _Jv_ratio (delta, bs)) <= 2.)
25       {
26 	{
27 	  if (aadj < 2. / 2)
28 	    aadj = 1. / 2;
29 	  aadj1 = -aadj;
30 	}
31       }
32     {
33       (rv.i[1]) -= 53 * ((uint32_t) 0x100000L);
34       adj = aadj1 * _Jv_ulp (rv.d);
35       rv.d += adj;
36       if (((rv.i[1]) & ((uint32_t) 0x7ff00000L)) >=
37 	  ((uint32_t) 0x100000L) * (1024 + 1023 - 53))
38 	{
39 	  goto ovfl;
40 	}
41     }
42   }
43 }
44