1 // RUN: c-index-test -index-file -check-prefix CHECK %s -target armv7-windows-gnu -fdeclspec
2
3 struct __declspec(dllexport) export_s {
4 void m();
5 };
6 // CHECK: [indexDeclaration]: kind: struct | name: export_s | {{.*}} | lang: C++
7 // CHECK: <attribute>: attribute(dllexport)
8 // CHECK: [indexDeclaration]: kind: c++-instance-method | name: m | {{.*}} | lang: C++
9 // CHECK: <attribute>: attribute(dllexport)
10
11 struct __declspec(dllimport) import_s {
12 void m();
13 };
14 // CHECK: [indexDeclaration]: kind: struct | name: import_s | {{.*}} | lang: C++
15 // CHECK: <attribute>: attribute(dllimport)
16 // CHECK: [indexDeclaration]: kind: c++-instance-method | name: m | {{.*}} | lang: C++
17 // CHECK: <attribute>: attribute(dllimport)
18
19 class __attribute__((dllexport)) export_gnu_s {
20 void m();
21 };
22 // CHECK: [indexDeclaration]: kind: struct | name: export_gnu_s | {{.*}} | lang: C++
23 // CHECK: <attribute>: attribute(dllexport)
24 // CHECK: [indexDeclaration]: kind: c++-instance-method | name: m | {{.*}} | lang: C++
25 // CHECK: <attribute>: attribute(dllexport)
26
27 class __attribute__((dllimport)) import_gnu_s {
28 void m();
29 };
30 // CHECK: [indexDeclaration]: kind: struct | name: import_gnu_s | {{.*}} | lang: C++
31 // CHECK: <attribute>: attribute(dllimport)
32 // CHECK: [indexDeclaration]: kind: c++-instance-method | name: m | {{.*}} | lang: C++
33 // CHECK: <attribute>: attribute(dllimport)
34
export_function(void)35 extern "C" void __declspec(dllexport) export_function(void) {}
36 // CHECK: [indexDeclaraton]: kind: function | name: export_function | {{.*}} | lang: C
37 // CHECK: <attribute>: attribute(dllexport)
export_gnu_function(void)38 extern "C" void __attribute__((dllexport)) export_gnu_function(void) {}
39 // CHECK: [indexDeclaraton]: kind: function | name: export_gnu_function | {{.*}} | lang: C
40 // CHECK: <attribute>: attribute(dllexport)
41
42 extern "C" {
43 void __declspec(dllimport) import_function(void);
44 // CHECK: [indexDeclaration] kind: function | name: import_function | {{.*}} | lang: C
45 // CHECK: <attribute>: attribute(dllimport)
46 void __attribute__((dllimport)) import_gnu_function(void);
47 // CHECK: [indexDeclaration] kind: function | name: import_gnu_function | {{.*}} | lang: C
48 // CHECK: <attribute>: attribute(dllimport)
49 }
50
51