(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.c-torture/
compile/
20080704-1.c
       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  };
      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  }