(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
lto/
pr55703_0.c
       1  /* { dg-lto-do run } */
       2  /* { dg-lto-options { { -O2 -flto -fno-tree-copy-prop -fno-tree-dce } } } */
       3  
       4  int try (int num) {
       5    __label__ lab1, lab2, lab3, lab4, lab5, lab6, default_lab;
       6  
       7    void *do_switch (int num) {
       8      switch(num) {
       9      case 1:
      10        return &&lab1;
      11      case 2:
      12        return &&lab2;
      13      case 3:
      14        return &&lab3;
      15      case 4:
      16        return &&lab4;
      17      case 5:
      18        return &&lab5;
      19      case 6:
      20        return &&lab6;
      21      default:
      22        return &&default_lab;
      23      }
      24    }
      25  
      26    goto *do_switch (num);
      27  
      28   lab1:
      29    return 1;
      30  
      31   lab2:
      32    return 2;
      33  
      34   lab3:
      35    return 3;
      36  
      37   lab4:
      38    return 4;
      39  
      40   lab5:
      41    return 5;
      42  
      43   lab6:
      44    return 6;
      45  
      46   default_lab:
      47    return -1;
      48  }
      49  
      50  int
      51  main()
      52  {
      53    int i;
      54    for (i = 1; i <= 6; i++)
      55      {
      56        if (try (i) != i)
      57  	__builtin_abort();
      58      }
      59    __builtin_exit(0);
      60  }