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