34 lines
1.1 KiB
C
34 lines
1.1 KiB
C
/* { 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));
|
|
|
|
void foo2 (void)
|
|
{
|
|
__attribute__((externally_visible)) void foo3 (void) { } /* { dg-warning "have effect only on public" } */
|
|
}
|
|
|
|
__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" } */
|