OSDN Git Service

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