xref: /llvm-project/clang/test/Index/index-attrs.cpp (revision b43573b9a4ab69c03d435054ffec4dc495b73035)
1*b43573b9SSerge Pavlov // RUN: c-index-test -index-file %s -target armv7-windows-gnu -fdeclspec | FileCheck %s
28aa0b80eSSaleem Abdulrasool 
38aa0b80eSSaleem Abdulrasool struct __declspec(dllexport) export_s {
48aa0b80eSSaleem Abdulrasool   void m();
58aa0b80eSSaleem Abdulrasool };
68aa0b80eSSaleem Abdulrasool // CHECK: [indexDeclaration]: kind: struct | name: export_s | {{.*}} | lang: C++
78aa0b80eSSaleem Abdulrasool // CHECK: <attribute>: attribute(dllexport)
88aa0b80eSSaleem Abdulrasool // CHECK: [indexDeclaration]: kind: c++-instance-method | name: m | {{.*}} | lang: C++
98aa0b80eSSaleem Abdulrasool // CHECK: <attribute>: attribute(dllexport)
108aa0b80eSSaleem Abdulrasool 
118aa0b80eSSaleem Abdulrasool struct __declspec(dllimport) import_s {
128aa0b80eSSaleem Abdulrasool   void m();
138aa0b80eSSaleem Abdulrasool };
148aa0b80eSSaleem Abdulrasool // CHECK: [indexDeclaration]: kind: struct | name: import_s | {{.*}} | lang: C++
158aa0b80eSSaleem Abdulrasool // CHECK: <attribute>: attribute(dllimport)
168aa0b80eSSaleem Abdulrasool // CHECK: [indexDeclaration]: kind: c++-instance-method | name: m | {{.*}} | lang: C++
178aa0b80eSSaleem Abdulrasool // CHECK: <attribute>: attribute(dllimport)
188aa0b80eSSaleem Abdulrasool 
198aa0b80eSSaleem Abdulrasool class __attribute__((dllexport)) export_gnu_s {
208aa0b80eSSaleem Abdulrasool   void m();
218aa0b80eSSaleem Abdulrasool };
22*b43573b9SSerge Pavlov // CHECK: [indexDeclaration]: kind: c++-class | name: export_gnu_s | {{.*}} | lang: C++
238aa0b80eSSaleem Abdulrasool // CHECK: <attribute>: attribute(dllexport)
248aa0b80eSSaleem Abdulrasool // CHECK: [indexDeclaration]: kind: c++-instance-method | name: m | {{.*}} | lang: C++
258aa0b80eSSaleem Abdulrasool // CHECK: <attribute>: attribute(dllexport)
268aa0b80eSSaleem Abdulrasool 
278aa0b80eSSaleem Abdulrasool class __attribute__((dllimport)) import_gnu_s {
288aa0b80eSSaleem Abdulrasool   void m();
298aa0b80eSSaleem Abdulrasool };
30*b43573b9SSerge Pavlov // CHECK: [indexDeclaration]: kind: c++-class | name: import_gnu_s | {{.*}} | lang: C++
318aa0b80eSSaleem Abdulrasool // CHECK: <attribute>: attribute(dllimport)
328aa0b80eSSaleem Abdulrasool // CHECK: [indexDeclaration]: kind: c++-instance-method | name: m | {{.*}} | lang: C++
338aa0b80eSSaleem Abdulrasool // CHECK: <attribute>: attribute(dllimport)
348aa0b80eSSaleem Abdulrasool 
export_function(void)358aa0b80eSSaleem Abdulrasool extern "C" void __declspec(dllexport) export_function(void) {}
36*b43573b9SSerge Pavlov // CHECK: [indexDeclaration]: kind: function | name: export_function | {{.*}} | lang: C
378aa0b80eSSaleem Abdulrasool // CHECK: <attribute>: attribute(dllexport)
export_gnu_function(void)388aa0b80eSSaleem Abdulrasool extern "C" void __attribute__((dllexport)) export_gnu_function(void) {}
39*b43573b9SSerge Pavlov // CHECK: [indexDeclaration]: kind: function | name: export_gnu_function | {{.*}} | lang: C
408aa0b80eSSaleem Abdulrasool // CHECK: <attribute>: attribute(dllexport)
418aa0b80eSSaleem Abdulrasool 
428aa0b80eSSaleem Abdulrasool extern "C" {
438aa0b80eSSaleem Abdulrasool void __declspec(dllimport) import_function(void);
44*b43573b9SSerge Pavlov // CHECK: [indexDeclaration]: kind: function | name: import_function | {{.*}} | lang: C
458aa0b80eSSaleem Abdulrasool // CHECK: <attribute>: attribute(dllimport)
468aa0b80eSSaleem Abdulrasool void __attribute__((dllimport)) import_gnu_function(void);
47*b43573b9SSerge Pavlov // CHECK: [indexDeclaration]: kind: function | name: import_gnu_function | {{.*}} | lang: C
488aa0b80eSSaleem Abdulrasool // CHECK: <attribute>: attribute(dllimport)
498aa0b80eSSaleem Abdulrasool }
508aa0b80eSSaleem Abdulrasool 
51