1 /* { dg-do run } */
2
3 extern void abort (void);
4 void __attribute__((noinline,noclone))
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 }
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 }