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