OSDN Git Service

* gcc.c-torture/execute/20000412-1.c: Reduce some more.
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.c-torture / execute / 990208-1.c
1 /* As a quality of implementation issue, we should not prevent inlining
2    of function explicitly marked inline just because a label therein had
3    its address taken.  */
4
5 #ifndef NO_LABEL_VALUES
6 static void *ptr1, *ptr2;
7
8 static __inline__ void doit(void **pptr, int cond)
9 {
10   if (cond) {
11   here:
12     *pptr = &&here;
13   }
14 }
15
16 static void f(int cond)
17 {
18   doit (&ptr1, cond);
19 }
20
21 static void g(int cond)
22 {
23   doit (&ptr2, cond);
24 }
25
26 static void bar(void);
27
28 int main()
29 {
30   f (1);
31   bar();
32   g (1);
33
34 #ifdef  __OPTIMIZE__
35   if (ptr1 == ptr2)
36     abort ();
37 #endif
38
39   exit (0);
40 }
41
42 void bar(void) { }
43
44 #else /* NO_LABEL_VALUES */
45 int main() { exit(0); }
46 #endif