(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
pr59920-2.c
       1  /* PR tree-optimization/59920 */
       2  /* { dg-do compile } */
       3  /* { dg-options "-O0" } */
       4  /* { dg-require-effective-target label_values } */
       5  /* { dg-require-effective-target indirect_jumps } */
       6  
       7  void *bar (void **);
       8  void *baz (int, void **);
       9  
      10  #define A(n) \
      11    { __label__ l1_##n, l2_##n, l3_##n;			\
      12      static void *a[] = { &&l1_##n, &&l2_##n, &&l3_##n };\
      13      void *b = bar (a);					\
      14      goto *b;						\
      15     l1_##n:						\
      16      b = baz (1, a);					\
      17      goto *b;						\
      18     l2_##n:						\
      19      b = baz (2, a);					\
      20      goto *b;						\
      21     l3_##n:;						\
      22    }
      23  #define B(n) A(n##0) A(n##1) A(n##2) A(n##3) A(n##4) \
      24  	     A(n##5) A(n##6) A(n##7) A(n##8) A(n##9)
      25  #define C(n) B(n##0) B(n##1) B(n##2) B(n##3) B(n##4) \
      26  	     B(n##5) B(n##6) B(n##7) B(n##8) B(n##9)
      27  
      28  void
      29  foo (void)
      30  {
      31    C(1)
      32  }