diff options
author | Saleem Abdulrasool <compnerd@compnerd.org> | 2018-03-20 17:33:26 +0000 |
---|---|---|
committer | Saleem Abdulrasool <compnerd@compnerd.org> | 2018-03-20 17:33:26 +0000 |
commit | 29149d5cb7a6fe510397788b7705d3b84892a687 (patch) | |
tree | f341525dbe1c5247fbdcb10ee25ae3c6f80e344d | |
parent | 914d4babec358a845a31f30a50ee729393593f3d (diff) | |
download | bcm5719-llvm-29149d5cb7a6fe510397788b7705d3b84892a687.tar.gz bcm5719-llvm-29149d5cb7a6fe510397788b7705d3b84892a687.zip |
Basic: support PreserveMost and PreserveAll on Windows ARM
Do not ignore these calling conventions on Windows ARM. They are used
by the swift runtime for certain calls.
llvm-svn: 328007
-rw-r--r-- | clang/lib/Basic/Targets/ARM.cpp | 2 | ||||
-rw-r--r-- | clang/test/CodeGen/preserve-call-conv.c | 1 | ||||
-rw-r--r-- | clang/test/Sema/preserve-call-conv.c | 1 |
3 files changed, 4 insertions, 0 deletions
diff --git a/clang/lib/Basic/Targets/ARM.cpp b/clang/lib/Basic/Targets/ARM.cpp index e946558759a..736c235745b 100644 --- a/clang/lib/Basic/Targets/ARM.cpp +++ b/clang/lib/Basic/Targets/ARM.cpp @@ -971,6 +971,8 @@ WindowsARMTargetInfo::checkCallingConvention(CallingConv CC) const { return CCCR_Ignore; case CC_C: case CC_OpenCLKernel: + case CC_PreserveMost: + case CC_PreserveAll: return CCCR_OK; default: return CCCR_Warning; diff --git a/clang/test/CodeGen/preserve-call-conv.c b/clang/test/CodeGen/preserve-call-conv.c index 2dff34e62dd..7a84fa28231 100644 --- a/clang/test/CodeGen/preserve-call-conv.c +++ b/clang/test/CodeGen/preserve-call-conv.c @@ -3,6 +3,7 @@ // RUN: %clang_cc1 -triple x86_64-unknown-windows-msvc -emit-llvm %s -o - | FileCheck %s // RUN: %clang_cc1 -triple aarch64-unknown-windows-msvc -emit-llvm %s -o - | FileCheck %s +// RUN: %clang_cc1 -triple thumbv7-unknown-windows-msvc -emit-llvm %s -o - | FileCheck %s // Check that the preserve_most calling convention attribute at the source level // is lowered to the corresponding calling convention attrribute at the LLVM IR diff --git a/clang/test/Sema/preserve-call-conv.c b/clang/test/Sema/preserve-call-conv.c index 6bd049ffdca..6add3095c66 100644 --- a/clang/test/Sema/preserve-call-conv.c +++ b/clang/test/Sema/preserve-call-conv.c @@ -2,6 +2,7 @@ // RUN: %clang_cc1 %s -fsyntax-only -triple arm64-unknown-unknown -verify // RUN: %clang_cc1 %s -fsyntax-only -triple x86_64-unknown-windows-msvc -verify // RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-unknown-windows-msvc -verify +// RUN: %clang_cc1 %s -fsyntax-only -triple thumbv7-unknown-windows-msvc -verify typedef void typedef_fun_t(int); |