summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaDeclCXX.cpp
diff options
context:
space:
mode:
authorMandeep Singh Grang <mgrang@quicinc.com>2019-05-03 21:12:24 +0000
committerMandeep Singh Grang <mgrang@quicinc.com>2019-05-03 21:12:24 +0000
commit85a0f8fe6c5c8ab35790c40d078d4fa103a5a54a (patch)
treea4ecb78dedd4a06c5badd2834d43cb3441dc2faa /clang/lib/Sema/SemaDeclCXX.cpp
parent090a5b29b8815116dc9bc6925146a537ef7db123 (diff)
downloadbcm5719-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.cpp5
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;
}
OpenPOWER on IntegriCloud