diff options
Diffstat (limited to 'gcc/testsuite/gcc.target/ia64/visibility-1.c')
-rw-r--r-- | gcc/testsuite/gcc.target/ia64/visibility-1.c | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.target/ia64/visibility-1.c b/gcc/testsuite/gcc.target/ia64/visibility-1.c new file mode 100644 index 000000000..fdccab3c7 --- /dev/null +++ b/gcc/testsuite/gcc.target/ia64/visibility-1.c @@ -0,0 +1,38 @@ +/* Test visibility attribute. */ +/* { dg-do compile { target ia64*-*-linux* } } */ +/* { dg-options "-O2 -fpic" } */ +/* { dg-final { scan-assembler "\\.hidden.*variable_j" } } */ +/* { dg-final { scan-assembler "\\.hidden.*variable_m" } } */ +/* { dg-final { scan-assembler "\\.protected.*baz" } } */ +/* { dg-final { scan-assembler "gprel.*variable_i" } } */ +/* { dg-final { scan-assembler "gprel.*variable_j" } } */ +/* { dg-final { scan-assembler "ltoff.*variable_k" } } */ +/* { dg-final { scan-assembler "gprel.*variable_l" } } */ +/* { dg-final { scan-assembler "gprel.*variable_m" } } */ +/* { dg-final { scan-assembler "ltoff.*variable_n" } } */ + +static int variable_i; +int variable_j __attribute__((visibility ("hidden"))); +int variable_k; +struct A { char a[64]; }; +static struct A variable_l __attribute__((section (".sbss"))); +struct A variable_m __attribute__((visibility ("hidden"), section(".sbss"))); +struct A variable_n __attribute__((section (".sbss"))); + +void foo (void) +{ + variable_i = 0; + variable_j = 0; + variable_k = 0; +} + +void bar (void) +{ + variable_l.a[10] = 0; + variable_m.a[10] = 0; + variable_n.a[10] = 0; +} + +void __attribute__((visibility ("protected"))) baz (void) +{ +} |