summaryrefslogtreecommitdiffstats
path: root/lldb/lit
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/lit')
-rw-r--r--lldb/lit/SymbolFile/PDB/Inputs/CallingConventionsTest.cpp20
-rw-r--r--lldb/lit/SymbolFile/PDB/calling-conventions.test11
-rw-r--r--lldb/lit/SymbolFile/PDB/pointers.test2
3 files changed, 32 insertions, 1 deletions
diff --git a/lldb/lit/SymbolFile/PDB/Inputs/CallingConventionsTest.cpp b/lldb/lit/SymbolFile/PDB/Inputs/CallingConventionsTest.cpp
new file mode 100644
index 00000000000..60854c04c60
--- /dev/null
+++ b/lldb/lit/SymbolFile/PDB/Inputs/CallingConventionsTest.cpp
@@ -0,0 +1,20 @@
+int FuncCCall() { return 0; }
+auto FuncCCallPtr = &FuncCCall;
+
+int __stdcall FuncStdCall() { return 0; }
+auto FuncStdCallPtr = &FuncStdCall;
+
+int __fastcall FuncFastCall() { return 0; }
+auto FuncFastCallPtr = &FuncFastCall;
+
+int __vectorcall FuncVectorCall() { return 0; }
+auto FuncVectorCallPtr = &FuncVectorCall;
+
+struct S {
+ int FuncThisCall() { return 0; }
+};
+auto FuncThisCallPtr = &S::FuncThisCall;
+
+int main() {
+ return 0;
+}
diff --git a/lldb/lit/SymbolFile/PDB/calling-conventions.test b/lldb/lit/SymbolFile/PDB/calling-conventions.test
new file mode 100644
index 00000000000..cc1474945e1
--- /dev/null
+++ b/lldb/lit/SymbolFile/PDB/calling-conventions.test
@@ -0,0 +1,11 @@
+REQUIRES: windows, lld
+RUN: clang-cl -m32 /Zi /GS- /c %S/Inputs/CallingConventionsTest.cpp /o %t.obj
+RUN: lld-link /debug:full /nodefaultlib /entry:main %t.obj /out:%t.exe
+RUN: lldb-test symbols -dump-ast %t.exe | FileCheck %s
+
+CHECK: Module: {{.*}}
+CHECK-DAG: int (*FuncCCallPtr)();
+CHECK-DAG: int (*FuncStdCallPtr)() __attribute__((stdcall));
+CHECK-DAG: int (*FuncFastCallPtr)() __attribute__((fastcall));
+CHECK-DAG: int (*FuncVectorCallPtr)() __attribute__((vectorcall));
+CHECK-DAG: int (S::*FuncThisCallPtr)() __attribute__((thiscall));
diff --git a/lldb/lit/SymbolFile/PDB/pointers.test b/lldb/lit/SymbolFile/PDB/pointers.test
index 3924989ab58..03e31c4ff3c 100644
--- a/lldb/lit/SymbolFile/PDB/pointers.test
+++ b/lldb/lit/SymbolFile/PDB/pointers.test
@@ -28,7 +28,7 @@ MAIN-SAME: (int *), scope = local
MAIN: Variable{{.*}}, name = "p_member_field"
MAIN-SAME: (int ST::*), scope = local
MAIN: Variable{{.*}}, name = "p_member_method"
-MAIN-SAME: (int (ST::*)(int)), scope = local
+MAIN-SAME: (int (ST::*)(int) __attribute__((thiscall))), scope = local
F: Function{[[FID2:.*]]}, demangled = {{.*}}f(int)
F-NEXT: Block{[[FID2]]}
OpenPOWER on IntegriCloud