111
|
1 /* PR c++/30066: Test that -fvisibility-inlines-hidden affects functions. */
|
|
2 /* { dg-do compile } */
|
|
3 /* { dg-require-visibility "" } */
|
|
4 /* { dg-options "-fvisibility-inlines-hidden" } */
|
|
5 /* { dg-final { scan-hidden "_Z3barv" } } */
|
|
6 /* { dg-final { scan-not-hidden "_ZZ3barvE1n" } } */
|
|
7 /* { dg-final { scan-not-hidden "_Z3fooIiEvv" } } */
|
|
8 /* { dg-final { scan-hidden "_Z3fooIvEvv" } } */
|
|
9 /* { dg-final { scan-hidden "_ZZN1A5innerEvE1n" } } */
|
|
10
|
|
11 inline int * bar()
|
|
12 {
|
|
13 static int n;
|
|
14 return &n;
|
|
15 }
|
|
16
|
|
17 template <class T>
|
|
18 inline void foo() { }
|
|
19
|
|
20 template void foo<int>();
|
|
21
|
|
22 namespace A __attribute__ ((visibility ("hidden")))
|
|
23 {
|
|
24 inline int * inner()
|
|
25 {
|
|
26 static int n;
|
|
27 return &n;
|
|
28 }
|
|
29 }
|
|
30
|
|
31 int main(void)
|
|
32 {
|
|
33 bar();
|
|
34 foo<void>();
|
|
35 A::inner();
|
|
36 return 0;
|
|
37 }
|