summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.c-torture/compile/pr48161.c
blob: c454efcd07362862e264af9bfda86ea713213f8e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/* PR bootstrap/48161 */

struct T { int u; };
struct G { int l; int t; int r; };
struct V { struct G v[10]; };
struct { struct V b; } *h;
void bar (void);

struct G *
baz (struct V *x, unsigned y)
{
  return &x->v[y];
}

int
foo (struct T *x, struct T *y)
{
  if ((baz (&h->b, y->u)->t ? baz (&h->b, y->u)->t : 0)
      - baz (h ? &h->b : 0, x->u)->r
      - (baz (h ? &h->b : 0, x->u)->t > 0 ? 5 : 0))
    return 1;
  bar ();
  return 0;
}