(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
pr60485-2.c
       1  /* { dg-do run } */
       2  /* { dg-options "-O2" } */
       3  
       4  extern void abort (void);
       5  struct S {
       6      int *i[4];
       7      int *p1;
       8      int *p2;
       9      int *p3;
      10      int *p4;
      11      int **x;
      12  };
      13  int **b;
      14  int main()
      15  {
      16    int i = 1;
      17    struct S s;
      18    s.p3 = &i;
      19    int **p;
      20    if (b)
      21      p = b;
      22    else
      23      p = &s.i[2];
      24    p += 4;
      25    /* prevert fowrprop from creating an offsetted sd constraint and
      26       preserve the pointer offsetting constraint.  */
      27    s.x = p;
      28    p = s.x;
      29    if (!b)
      30      {
      31        int *z = *p;
      32        /* z should point to i (and non-local/escaped).  */
      33        *z = 0;
      34      }
      35    if (i != 0)
      36      abort ();
      37    return i;
      38  }