use scan-hidden
[official-gcc.git] / gcc / testsuite / g++.dg / ext / visibility / visibility-8.C
blobf0139b362a8a8db1b5b7042184a55791d8f2d5a0
1 // Test that a definition marked with dllexport has default
2 // visibility.
3 // { dg-require-visibility "" }
4 // { dg-require-dll "" }
5 // { dg-options "-fvisibility=hidden" }
6 // { dg-final { scan-not-hidden "_ZN1A1fEv" } }
7 // { dg-final { scan-not-hidden "_Z1gv" } }
8 // { dg-final { scan-not-hidden "_Z1hv" } }
9 // { dg-final { scan-not-hidden "_ZN1BC1Ev" } }
10 // { dg-final { scan-not-hidden "_ZN1BC2Ev" } }
11 // { dg-final { scan-not-hidden "_ZN1BD0Ev" } }
12 // { dg-final { scan-not-hidden "_ZN1BD1Ev" } }
13 // { dg-final { scan-not-hidden "_ZN1BD2Ev" } }
14 // { dg-final { scan-not-hidden "_ZN1B1iEv" } }
15 // { dg-final { scan-not-hidden "_ZN1B1jEv" } }
16 // { dg-final { scan-not-hidden "_ZN1A1a" } }
17 // { dg-final { scan-not-hidden "_ZN1B1b" } }
18 // { dg-final { scan-not-hidden "k" } }
19 // { dg-final { scan-not-hidden "l" } }
21 struct __declspec(dllexport) A {
22   void f();
23   static int a;
26 void A::f() {}
28 int A::a;
30 __declspec(dllexport) void g() {}
32 __declspec(dllexport) void h();
33 void h() {}
35 struct B {
36   B();
37   __declspec(dllexport) virtual ~B();
38   void i();
39   __declspec(dllexport) void j();
40   __declspec(dllexport) static int b;
43 __declspec(dllexport) B::B() {}
45 B::~B() {}
47 __declspec(dllexport) void B::i() {}
49 void B::j() {}
51 int B::b;
53 __declspec(dllexport) int k;
55 __declspec(dllexport) extern int l;
56 int l;