1 /* { dg-do run } */
2 
3 static struct S { int *p1; int *p2; } s;
4 typedef __UINTPTR_TYPE__ uintptr_t;
foo()5 int foo()
6 {
7   int i = 1, j = 2;
8   struct S s;
9   int **p;
10   s.p1 = &i;
11   s.p2 = &j;
12   p = &s.p1;
13   uintptr_t pi = (uintptr_t)p;
14   pi = pi + sizeof (int *);
15   p = (int **)pi;
16   **p = 3;
17   return j;
18 }
19 
main()20 int main()
21 {
22   if (foo () != 3)
23     __builtin_abort ();
24   return 0;
25 }
26