(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.c-torture/
execute/
20071220-2.c
       1  /* PR tree-optimization/29484 */
       2  /* { dg-require-effective-target label_values } */
       3  
       4  extern void abort (void);
       5  
       6  void *__attribute__((noinline))
       7  baz (void **lab)
       8  {
       9    asm volatile ("" : "+r" (lab));
      10    return *lab;
      11  }
      12  
      13  static inline
      14  int bar (void)
      15  {
      16    static void *b[] = { &&addr };
      17    baz (b);
      18  addr:
      19    return 17;
      20  }
      21  
      22  int __attribute__((noinline))
      23  f1 (void)
      24  {
      25    return bar ();
      26  }
      27  
      28  int __attribute__((noinline))
      29  f2 (void)
      30  {
      31    return bar ();
      32  }
      33  
      34  int
      35  main (void)
      36  {
      37    if (f1 () != 17 || f1 () != 17 || f2 () != 17 || f2 () != 17)
      38      abort ();
      39    return 0;
      40  }