1 /* { dg-do run } */ 2 3 static struct S { int *p1; int *p2; } s; 4 typedef __UINTPTR_TYPE__ uintptr_t; foo()5int 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()20int main() 21 { 22 if (foo () != 3) 23 __builtin_abort (); 24 return 0; 25 } 26