modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/execute/20071220-2.c (about)

     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  }