| // { dg-do compile } |
| // { dg-options "-O -fwhole-program" } |
| |
| static void foo1 (void) { } // { dg-warning "have effect only on public" } |
| extern void foo1 (void) __attribute__((externally_visible)); |
| |
| struct C |
| { |
| __attribute__((externally_visible)) void foo3 (void) { } |
| }; |
| |
| __attribute__((externally_visible)) static void foo3 (void) { } // { dg-warning "have effect only on public" } |
| |
| static int bar1; |
| extern int bar1 __attribute__((externally_visible)); // { dg-warning "have effect only on public" } |
| |
| static int bar2 __attribute__((externally_visible)); // { dg-warning "have effect only on public" } |
| |
| void fn1 (void) |
| { |
| static int bar3 __attribute__((externally_visible)); // { dg-warning "have effect only on public" } |
| } |
| |
| void fn2 (void) |
| { |
| int bar4 __attribute__((externally_visible)); // { dg-warning "have effect only on public" } |
| } |
| |
| struct A |
| { |
| } __attribute__((externally_visible)); // { dg-warning "does not apply to types" } |
| |
| typedef int B __attribute__((externally_visible)); // { dg-warning "attribute ignored" } |
| |
| struct D |
| { |
| static int d __attribute__((externally_visible)); |
| }; |