1169695Skan/* { dg-do run } */
2169695Skan
3169695Skanextern void abort (void);
4169695Skan
5169695Skanstatic inline void
6169695Skanfoo (int * p)
7169695Skan{
8169695Skan  int * __restrict pr = p;
9169695Skan  *pr = 1;
10169695Skan}
11169695Skan
12169695Skanint __attribute__((noinline,noclone))
13169695Skanbar (int *q)
14169695Skan{
15169695Skan  int * __restrict qr = q;
16169695Skan  *qr = 0;
17169695Skan  foo (qr);
18169695Skan  return *qr;
19169695Skan}
20169695Skan
21169695Skanint main()
22169695Skan{
23169695Skan  int i;
24169695Skan  if (bar (&i) != 1)
25169695Skan    abort ();
26169695Skan  return 0;
27169695Skan}
28169695Skan