(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.c-torture/
execute/
pr58277-2.c
       1  /* PR tree-optimization/58277 */
       2  
       3  extern void abort (void);
       4  static int a[1], b, c, e, i, j, k, m, q[] = { 1, 1 }, t;
       5  int volatile d;
       6  int **r;
       7  static int ***volatile s = &r;
       8  int f, g, o, x;
       9  static int *volatile h = &f, *p;
      10  char n;
      11  
      12  static void
      13  fn1 ()
      14  {
      15    b = a[a[a[a[a[a[a[a[b]]]]]]]];
      16    b = a[a[a[a[a[a[a[a[b]]]]]]]];
      17    b = a[a[b]];
      18    b = a[a[a[a[a[a[a[a[b]]]]]]]];
      19    b = a[a[a[a[a[a[a[a[b]]]]]]]];
      20  }
      21  
      22  static int
      23  fn2 ()
      24  {
      25    n = 0;
      26    for (; g; t++)
      27      {
      28        for (;; m++)
      29  	{
      30  	  d;
      31  	  int *u;
      32  	  int **v[] = {
      33  	    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      34  	    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      35  	    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      36  	    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      37  	    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      38  	    0, 0, 0, 0, 0, &u, 0, 0, 0, 0, &u, &u, &u, &u, &u, &u, &u, 0,
      39  	    &u, 0, &u, &u, &u, 0, &u, &u, 0, &u, &u, &u, &u, 0, &u, &u, &u,
      40  	    &u, &u, 0, &u, &u, 0, &u, 0, &u, &u, 0, &u, &u, &u, &u, &u, 0,
      41  	    &u, 0, 0, 0, &u, &u, &u, 0, 0, &u, &u, &u, 0, &u, 0, &u, &u
      42  	  };
      43  	  int ***w[] = { &v[0] };
      44  	  if (*p)
      45  	    break;
      46  	  return 0;
      47  	}
      48        *h = 0;
      49      }
      50    return 1;
      51  }
      52  
      53  static void
      54  fn3 ()
      55  {
      56    int *y[] = { 0, 0, 0, 0, 0, 0, 0, 0 };
      57    for (; i; i++)
      58      x = 0;
      59    if (fn2 ())
      60      {
      61        int *z[6] = { };
      62        for (; n < 1; n++)
      63  	*h = 0;
      64        int t1[7];
      65        for (; c; c++)
      66  	o = t1[0];
      67        for (; e; e--)
      68  	{
      69  	  int **t2 = &y[0];
      70  	  int ***t3 = &t2;
      71  	  *t3 = &z[0];
      72  	}
      73      }
      74    *s = 0;
      75    for (n = 0;; n = 0)
      76      {
      77        int t4 = 0;
      78        if (q[n])
      79  	break;
      80        *r = &t4;
      81      }
      82  }
      83  
      84  int
      85  main ()
      86  {
      87    for (; j; j--)
      88      a[0] = 0;
      89    fn3 ();
      90    for (; k; k++)
      91      fn1 ();
      92    fn1 ();
      93   
      94    if (n)
      95      abort ();
      96  
      97    return 0;
      98  }