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