(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
torture/
pr93124.c
       1  /* { dg-additional-options "-fno-rerun-cse-after-loop -fno-guess-branch-probability -fno-tree-fre" } */
       2  /* { dg-require-effective-target alloca } */
       3  
       4  int x;
       5  
       6  void fn2 ();
       7  void fn3 ();
       8  void fn4 ();
       9  void fn5 ();
      10  void fn6 ();
      11  
      12  void
      13  fn1 (void)
      14  {
      15    int n;
      16    for (n = 0;; ++n) {
      17      {
      18        struct { char a[n]; } s;
      19        fn2 (s);
      20      }
      21      struct { unsigned a[x]; } s;
      22      int i, b;
      23      for (i = 0; i < n; ++i)
      24        ;
      25      fn2 (s);
      26      {
      27        struct { char a[n]; } s;
      28        int i;
      29        for (i = 0; i < n; ++i)
      30          s.a[i] = i;
      31        fn3 (s, s);
      32      }
      33      fn4 ();
      34      {
      35        struct { unsigned a[n]; } s;
      36        fn5 (s);
      37      }
      38      {
      39        struct { char a[b]; } s;
      40        for (; i < n;)
      41          s.a[i] = i;
      42        fn6 (s);
      43      }
      44    }
      45  }