1// { dg-do compile }
2struct A { short a; };
3int **b;
4unsigned long c;
5
6bool foo ();
7unsigned bar (unsigned i);
8extern void baz () __attribute__((noreturn));
9
10int *
11test (unsigned x, struct A *y)
12{
13  unsigned v;
14  if (foo () || y[x].a == -1)
15    {
16      c = bar (x);
17      return 0;
18    }
19  v = y[x].a;
20  if (v >= 23)
21    baz ();
22  return b[v];
23}
24