1 /* { dg-do run } */
2 
3 extern void abort (void);
4 void __attribute__((noinline,noclone))
foo(void * p_)5 foo (void *p_)
6 {
7   int *p;
8   int i;
9   for (i = 0; i < sizeof(int *); ++i)
10     ((char *)&p)[i] = ((char *)p_)[i];
11   *p = 1;
12 }
main()13 int main()
14 {
15   int i = 0;
16   int *p = &i;
17   foo (&p);
18   if (i != 1)
19     abort ();
20   return 0;
21 }
22