diff options
Diffstat (limited to 'lldb/lit')
| -rw-r--r-- | lldb/lit/SymbolFile/PDB/Inputs/CallingConventionsTest.cpp | 20 | ||||
| -rw-r--r-- | lldb/lit/SymbolFile/PDB/calling-conventions.test | 11 | ||||
| -rw-r--r-- | lldb/lit/SymbolFile/PDB/pointers.test | 2 |
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]]} |

