1 // Test that a definition marked with dllexport has default
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 {
30 __declspec(dllexport) void g() {}
32 __declspec(dllexport) void h();
37 __declspec(dllexport) virtual ~B();
39 __declspec(dllexport) void j();
40 __declspec(dllexport) static int b;
43 __declspec(dllexport) B::B() {}
47 __declspec(dllexport) void B::i() {}
53 __declspec(dllexport) int k;
55 __declspec(dllexport) extern int l;