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

Subversion Repositories openrisc

[/] [openrisc/] [tags/] [gnu-src/] [gcc-4.5.1/] [gcc-4.5.1-or32-1.0rc1/] [gcc/] [testsuite/] [gcc.c-torture/] [compile/] [20011130-2.c] - Diff between revs 297 and 338

Only display areas with differences | Details | Blame | View Log

Rev 297 Rev 338
/* This testcase caused infinite loop in life info computation
/* This testcase caused infinite loop in life info computation
   after if conversion on IA-64.  Conditional register dead for
   after if conversion on IA-64.  Conditional register dead for
   pseudo holding sign-extended k was improperly computed,
   pseudo holding sign-extended k was improperly computed,
   resulting in this pseudo being live at start of bb if it was
   resulting in this pseudo being live at start of bb if it was
   dead at the end and vice versa; as it was a bb which had edge
   dead at the end and vice versa; as it was a bb which had edge
   to itself, this resulted in alternative propagating this basic
   to itself, this resulted in alternative propagating this basic
   block forever.  */
   block forever.  */
 
 
typedef struct {
typedef struct {
  unsigned char a;
  unsigned char a;
  unsigned char b;
  unsigned char b;
} S0;
} S0;
 
 
typedef struct {
typedef struct {
  S0 *c;
  S0 *c;
  int d;
  int d;
  unsigned int e;
  unsigned int e;
  unsigned char *f[3];
  unsigned char *f[3];
  void *g;
  void *g;
} S1;
} S1;
 
 
int bar (int, void *);
int bar (int, void *);
 
 
int foo (S1 *x, float y)
int foo (S1 *x, float y)
{
{
  S0 *h;
  S0 *h;
  int i, j, k, l, m;
  int i, j, k, l, m;
  float n, o, p;
  float n, o, p;
  unsigned char *q, *r[3];
  unsigned char *q, *r[3];
 
 
  h = x->c;
  h = x->c;
  m = h->a;
  m = h->a;
  l = h->b;
  l = h->b;
  n = y;
  n = y;
  o = 0.0;
  o = 0.0;
  if (x->d == 8)
  if (x->d == 8)
    for (j = 0; j < x->e; j++)
    for (j = 0; j < x->e; j++)
      for (k = 0; k < 3; k++)
      for (k = 0; k < 3; k++)
        {
        {
          n = y;
          n = y;
          o = 0.0;
          o = 0.0;
          if (m)
          if (m)
            q = x->f[k] + x->e - 1 - j;
            q = x->f[k] + x->e - 1 - j;
          else
          else
            q = x->f[k] + j;
            q = x->f[k] + j;
          p = (*q - o) * y / (n - o);
          p = (*q - o) * y / (n - o);
          p = 0.0 > p ? 0.0 : p;
          p = 0.0 > p ? 0.0 : p;
          p = y < p ? y : p;
          p = y < p ? y : p;
          if (l)
          if (l)
            p = r[k][(int) p];
            p = r[k][(int) p];
          bar (p, x->g);
          bar (p, x->g);
        }
        }
  return 1;
  return 1;
}
}
 
 

powered by: WebSVN 2.1.0

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