1/* PR tree-optimization/32772 */
2
3struct S
4{
5  unsigned long bits[1];
6};
7
8void f1 (int, unsigned long *);
9int f2 (void);
10int f3 (int, unsigned long *);
11int f4 (int, unsigned long *);
12
13static inline __attribute__ ((always_inline))
14void baz (int x, volatile struct S *y)
15{
16  f1 (x, y->bits);
17}
18
19static int
20bar (int x, struct S *y)
21{
22  int n;
23  if (__builtin_constant_p (x) ? f3 (x, y->bits) : f4 (x, y->bits))
24    baz (x, y);
25  for (n = f2 (); n < 8; n = f2 ())
26    f3 (n, y->bits);
27}
28
29void
30foo (int x, int y)
31{
32  struct S m;
33  while ((y = bar (x, &m)) >= 0);
34}
35