OSDN Git Service

Merge tree-ssa-20020619-branch into mainline.
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.dg / ia64-visibility-1.c
1 /* Test visibility attribute.  */
2 /* { dg-do compile { target ia64*-*-linux* } } */
3 /* { dg-options "-O2 -fpic" } */
4 /* { dg-final { scan-assembler "\\.hidden.*variable_j" } } */
5 /* { dg-final { scan-assembler "\\.hidden.*variable_m" } } */
6 /* { dg-final { scan-assembler "\\.protected.*baz" } } */
7 /* { dg-final { scan-assembler "gprel.*variable_i" } } */
8 /* { dg-final { scan-assembler "gprel.*variable_j" } } */
9 /* { dg-final { scan-assembler "ltoff.*variable_k" } } */
10 /* { dg-final { scan-assembler "gprel.*variable_l" } } */
11 /* { dg-final { scan-assembler "gprel.*variable_m" } } */
12 /* { dg-final { scan-assembler "ltoff.*variable_n" } } */
13
14 static int variable_i;
15 int variable_j __attribute__((visibility ("hidden")));
16 int variable_k;
17 struct A { char a[64]; };
18 static struct A variable_l __attribute__((section (".sbss")));
19 struct A variable_m __attribute__((visibility ("hidden"), section(".sbss")));
20 struct A variable_n __attribute__((section (".sbss")));
21
22 int foo (void)
23 {
24   return variable_i + variable_j + variable_k;
25 }
26
27 void bar (void)
28 {
29   variable_l.a[10] = 0;
30   variable_m.a[10] = 0;
31   variable_n.a[10] = 0;
32 }
33
34 void __attribute__((visibility ("protected"))) baz (void)
35 {
36 }