modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/execute/pr58277-2.c (about)

     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  }