(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
torture/
pr89135.c
       1  /* { dg-do compile } */
       2  /* { dg-require-effective-target indirect_jumps } */
       3  /* { dg-require-effective-target label_values } */
       4  
       5  typedef __INTPTR_TYPE__ intptr_t;
       6  intptr_t a, b, c, d;
       7  int foo (void) { return 0; }
       8  int baz (void);
       9  
      10  void
      11  bar (void)
      12  {
      13    intptr_t g = (intptr_t) &&h;
      14    void *i = &&j, *k = &&l;
      15  j:
      16    if (baz ())
      17      {
      18        intptr_t **n = (intptr_t **) &a;
      19  l:
      20        b = 0;
      21        for (; b >= 0;)
      22  	goto *k;
      23  h:
      24        **n = 0;
      25        for (;;)
      26  	{
      27  	  intptr_t *o = &c;
      28  	  g = foo ();
      29  	  *o = g;
      30  	  if (c)
      31  	    goto *(void*)d;
      32  	}
      33      }
      34    goto *i;
      35  }