(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.c-torture/
execute/
pr49161.c
       1  /* PR tree-optimization/49161 */
       2  
       3  extern void abort (void);
       4  
       5  int c;
       6  
       7  __attribute__((noinline, noclone)) void
       8  bar (int x)
       9  {
      10    if (x != c++)
      11      abort ();
      12  }
      13  
      14  __attribute__((noinline, noclone)) void
      15  foo (int x)
      16  {
      17    switch (x)
      18      {
      19      case 3: goto l1;
      20      case 4: goto l2;
      21      case 6: goto l3;
      22      default: return;
      23      }
      24  l1:
      25    goto l4;
      26  l2:
      27    goto l4;
      28  l3:
      29    bar (-1);
      30  l4:
      31    bar (0);
      32    if (x != 4)
      33      bar (1);
      34    if (x != 3)
      35      bar (-1);
      36    bar (2);
      37  }
      38  
      39  int
      40  main ()
      41  {
      42    foo (3);
      43    if (c != 3)
      44      abort ();
      45    return 0;
      46  }