PR tree-optimization/81303
[official-gcc.git] / gcc / testsuite / gcc.dg / attr-externally-visible-2.c
blob0a925bab3d94ec59d8b7154a32c9174a75cbd1c8
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 void foo2 (void)
9 __attribute__((externally_visible)) void foo3 (void) { } /* { dg-warning "have effect only on public" } */
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" } */