OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [gcc.c-torture/] [compile/] [20080704-1.c] - Blame information for rev 774

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 688 jeremybenn
/* 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
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.