diff options
author | Mandeep Singh Grang <mgrang@quicinc.com> | 2019-05-03 21:12:24 +0000 |
---|---|---|
committer | Mandeep Singh Grang <mgrang@quicinc.com> | 2019-05-03 21:12:24 +0000 |
commit | 85a0f8fe6c5c8ab35790c40d078d4fa103a5a54a (patch) | |
tree | a4ecb78dedd4a06c5badd2834d43cb3441dc2faa /clang/lib/Sema/SemaDeclCXX.cpp | |
parent | 090a5b29b8815116dc9bc6925146a537ef7db123 (diff) | |
download | bcm5719-llvm-85a0f8fe6c5c8ab35790c40d078d4fa103a5a54a.tar.gz bcm5719-llvm-85a0f8fe6c5c8ab35790c40d078d4fa103a5a54a.zip |
[COFF, ARM64] Fix ABI implementation of struct returns
Summary:
Related llvm patch: D60348.
Patch co-authored by Sanjin Sijaric.
Reviewers: rnk, efriedma, TomTan, ssijaric, ostannard
Reviewed By: efriedma
Subscribers: dmajor, richard.townsend.arm, ostannard, javed.absar, kristof.beyls, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D60349
llvm-svn: 359932
Diffstat (limited to 'clang/lib/Sema/SemaDeclCXX.cpp')
-rw-r--r-- | clang/lib/Sema/SemaDeclCXX.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/clang/lib/Sema/SemaDeclCXX.cpp b/clang/lib/Sema/SemaDeclCXX.cpp index 2e7573d11ef..b90ab0457b2 100644 --- a/clang/lib/Sema/SemaDeclCXX.cpp +++ b/clang/lib/Sema/SemaDeclCXX.cpp @@ -5957,8 +5957,11 @@ static bool canPassInRegisters(Sema &S, CXXRecordDecl *D, // Note: This permits small classes with nontrivial destructors to be // passed in registers, which is non-conforming. + bool isAArch64 = S.Context.getTargetInfo().getTriple().isAArch64(); + uint64_t TypeSize = isAArch64 ? 128 : 64; + if (CopyCtorIsTrivial && - S.getASTContext().getTypeSize(D->getTypeForDecl()) <= 64) + S.getASTContext().getTypeSize(D->getTypeForDecl()) <= TypeSize) return true; return false; } |