OSDN Git Service

2009-01-10 Sebastian Pop <sebastian.pop@amd.com>
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.dg / attr-externally-visible-2.c
1 /* { dg-do compile } */
2 /* { dg-options "-O -fwhole-program" } */
3
4 static void foo1 (void) { }                                     /* { dg-warning "have effect only on public" } */
5 extern void foo1 (void) __attribute__((externally_visible));
6
7 void foo2 (void)
8 {
9   __attribute__((externally_visible)) void foo3 (void) { }      /* { dg-warning "have effect only on public" } */
10 }
11
12 __attribute__((externally_visible)) static void foo3 (void) { } /* { dg-warning "have effect only on public" } */
13
14 static int bar1;
15 extern int bar1 __attribute__((externally_visible));            /* { dg-warning "have effect only on public" } */
16
17 static int bar2 __attribute__((externally_visible));            /* { dg-warning "have effect only on public" } */
18
19 void fn1 (void)
20 {
21   static int bar3 __attribute__((externally_visible));          /* { dg-warning "have effect only on public" } */
22 }
23
24 void fn2 (void)
25 {
26   int bar4 __attribute__((externally_visible));                 /* { dg-warning "have effect only on public" } */
27 }
28
29 struct A
30 {
31 } __attribute__((externally_visible));                          /* { dg-warning "does not apply to types" } */
32
33 typedef int B __attribute__((externally_visible));              /* { dg-warning "attribute ignored" } */