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