diff options
author | Sanjin Sijaric <ssijaric@codeaurora.org> | 2018-07-26 22:18:28 +0000 |
---|---|---|
committer | Sanjin Sijaric <ssijaric@codeaurora.org> | 2018-07-26 22:18:28 +0000 |
commit | 56391d6f848013d3b2847d2e4366165296901981 (patch) | |
tree | 43a757d9f88699dbb010fee9724d41b7c3996f45 /clang/lib/CodeGen/MicrosoftCXXABI.cpp | |
parent | 23df1319ca76f867a83634d74ba78377569e29b1 (diff) | |
download | bcm5719-llvm-56391d6f848013d3b2847d2e4366165296901981.tar.gz bcm5719-llvm-56391d6f848013d3b2847d2e4366165296901981.zip |
[ARM64] [Windows] Follow MS X86_64 C++ ABI when passing structs
Summary: Microsoft's C++ object model for ARM64 is the same as that for X86_64.
For example, small structs with non-trivial copy constructors or virtual
function tables are passed indirectly. Currently, they are passed in registers
when compiled with clang.
Reviewers: rnk, mstorsjo, TomTan, haripul, javed.absar
Reviewed By: rnk, mstorsjo
Subscribers: kristof.beyls, chrib, llvm-commits, cfe-commits
Differential Revision: https://reviews.llvm.org/D49770
llvm-svn: 338076
Diffstat (limited to 'clang/lib/CodeGen/MicrosoftCXXABI.cpp')
-rw-r--r-- | clang/lib/CodeGen/MicrosoftCXXABI.cpp | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/MicrosoftCXXABI.cpp b/clang/lib/CodeGen/MicrosoftCXXABI.cpp index a1122dc80af..81ed0505954 100644 --- a/clang/lib/CodeGen/MicrosoftCXXABI.cpp +++ b/clang/lib/CodeGen/MicrosoftCXXABI.cpp @@ -827,6 +827,7 @@ MicrosoftCXXABI::getRecordArgABI(const CXXRecordDecl *RD) const { return RAA_Default; case llvm::Triple::x86_64: + case llvm::Triple::aarch64: return !canCopyArgument(RD) ? RAA_Indirect : RAA_Default; } |