From 01bc838e4512ad645f72afd1d6b613d12c929aa4 Mon Sep 17 00:00:00 2001 From: Muhammad Omair Javaid Date: Wed, 29 Jun 2022 12:56:00 +0400 Subject: [PATCH] [LLDB] Add PDB/calling-conventions.test for Arm/Windows This patch renames PDB/calling-conventions.test to calling-conventions-x86.test. Also restrict it to run only for target-x86*. This patch also adds a arm specific test PDB/calling-conventions-arm.test which tests that x86 specifc calling convention decorators are ignored by Arm compiler. Reviewed By: labath Differential Revision: https://reviews.llvm.org/D128678 --- .../PDB/calling-conventions-arm.test | 11 +++++++++++ .../PDB/calling-conventions-x86.test | 19 +++++++++++++++++++ .../SymbolFile/PDB/calling-conventions.test | 10 ---------- 3 files changed, 30 insertions(+), 10 deletions(-) create mode 100644 lldb/test/Shell/SymbolFile/PDB/calling-conventions-arm.test create mode 100644 lldb/test/Shell/SymbolFile/PDB/calling-conventions-x86.test delete mode 100644 lldb/test/Shell/SymbolFile/PDB/calling-conventions.test diff --git a/lldb/test/Shell/SymbolFile/PDB/calling-conventions-arm.test b/lldb/test/Shell/SymbolFile/PDB/calling-conventions-arm.test new file mode 100644 index 0000000000000..07dc89d460293 --- /dev/null +++ b/lldb/test/Shell/SymbolFile/PDB/calling-conventions-arm.test @@ -0,0 +1,11 @@ +REQUIRES: system-windows, lld, (target-arm || target-aarch64) +RUN: %build --compiler=clang-cl --arch=32 --nodefaultlib --output=%t.exe %S/Inputs/CallingConventionsTest.cpp +RUN: %build --compiler=clang-cl --arch=64 --nodefaultlib --output=%t.exe %S/Inputs/CallingConventionsTest.cpp +RUN: lldb-test symbols -dump-ast %t.exe | FileCheck %s + +CHECK: Module: {{.*}} +CHECK-DAG: int (*FuncCCallPtr)(); +CHECK-DAG: int (*FuncStdCallPtr)(); +CHECK-DAG: int (*FuncFastCallPtr)(); +CHECK-DAG: int (*FuncVectorCallPtr)(); +CHECK-DAG: int (S::*FuncThisCallPtr)(); diff --git a/lldb/test/Shell/SymbolFile/PDB/calling-conventions-x86.test b/lldb/test/Shell/SymbolFile/PDB/calling-conventions-x86.test new file mode 100644 index 0000000000000..065c8b69b06dd --- /dev/null +++ b/lldb/test/Shell/SymbolFile/PDB/calling-conventions-x86.test @@ -0,0 +1,19 @@ +REQUIRES: system-windows, lld, (target-x86 || target-x86_64) +RUN: %build --compiler=clang-cl --arch=32 --nodefaultlib --output=%t.exe %S/Inputs/CallingConventionsTest.cpp \ +RUN: && lldb-test symbols -dump-ast %t.exe | FileCheck --check-prefix 32BIT-CHECK %s +RUN: %build --compiler=clang-cl --arch=64 --nodefaultlib --output=%t.exe %S/Inputs/CallingConventionsTest.cpp \ +RUN: && lldb-test symbols -dump-ast %t.exe | FileCheck --check-prefix 64BIT-CHECK %s + +64BIT-CHECK: Module: {{.*}} +64BIT-CHECK-DAG: int (*FuncCCallPtr)(); +64BIT-CHECK-DAG: int (*FuncStdCallPtr)(); +64BIT-CHECK-DAG: int (*FuncFastCallPtr)(); +64BIT-CHECK-DAG: int (*FuncVectorCallPtr)() __attribute__((vectorcall)); +64BIT-CHECK-DAG: int (S::*FuncThisCallPtr)(); + +32BIT-CHECK: Module: {{.*}} +32BIT-CHECK-DAG: int (*FuncCCallPtr)(); +32BIT-CHECK-DAG: int (*FuncStdCallPtr)() __attribute__((stdcall)); +32BIT-CHECK-DAG: int (*FuncFastCallPtr)() __attribute__((fastcall)); +32BIT-CHECK-DAG: int (*FuncVectorCallPtr)() __attribute__((vectorcall)); +32BIT-CHECK-DAG: int (S::*FuncThisCallPtr)() __attribute__((thiscall)); diff --git a/lldb/test/Shell/SymbolFile/PDB/calling-conventions.test b/lldb/test/Shell/SymbolFile/PDB/calling-conventions.test deleted file mode 100644 index a85dc65ff04dd..0000000000000 --- a/lldb/test/Shell/SymbolFile/PDB/calling-conventions.test +++ /dev/null @@ -1,10 +0,0 @@ -REQUIRES: system-windows, lld -RUN: %build --compiler=clang-cl --arch=32 --nodefaultlib --output=%t.exe %S/Inputs/CallingConventionsTest.cpp -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));