1 /* PR tree-optimization/29484 */
2 
3 extern void abort (void);
4 
5 void *__attribute__((noinline))
baz(void ** lab)6 baz (void **lab)
7 {
8   asm volatile ("" : "+r" (lab));
9   return *lab;
10 }
11 
12 static inline
bar(void)13 int bar (void)
14 {
15   static void *b[] = { &&addr };
16   void *p = baz (b);
17   goto *p;
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