http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00110.html
[official-gcc.git] / gcc / testsuite / g++.dg / parse / attr-externally-visible-2.C
blobd7feaabb2d11274fffdab963cfea0e9cd8877383
1 // { dg-do compile }
2 // { dg-options "-O -fwhole-program" }
4 static void foo1 (void) { }                                     // { dg-warning "have effect only on public" }
5 extern void foo1 (void) __attribute__((externally_visible));
7 struct C
9   __attribute__((externally_visible)) void foo3 (void) { }
12 __attribute__((externally_visible)) static void foo3 (void) { } // { dg-warning "have effect only on public" }
14 static int bar1;
15 extern int bar1 __attribute__((externally_visible));            // { dg-warning "have effect only on public" }
17 static int bar2 __attribute__((externally_visible));            // { dg-warning "have effect only on public" }
19 void fn1 (void)
21   static int bar3 __attribute__((externally_visible));          // { dg-warning "have effect only on public" }
24 void fn2 (void)
26   int bar4 __attribute__((externally_visible));                 // { dg-warning "have effect only on public" }
29 struct A
31 } __attribute__((externally_visible));                          // { dg-warning "does not apply to types" }
33 typedef int B __attribute__((externally_visible));              // { dg-warning "attribute ignored" }
35 struct D
37   static int d __attribute__((externally_visible));