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

     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  }