summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST
diff options
context:
space:
mode:
authorBob Wilson <bob.wilson@apple.com>2013-11-02 23:27:49 +0000
committerBob Wilson <bob.wilson@apple.com>2013-11-02 23:27:49 +0000
commit2c82c3d033c16bf3f6bc3bb4cd9d9a1639742894 (patch)
tree15536ab190d7f27cc7e30b3b746c3de2213c880c /clang/lib/AST
parent0f7445b6155e9174d80d82ba00ef8e67f001449b (diff)
downloadbcm5719-llvm-2c82c3d033c16bf3f6bc3bb4cd9d9a1639742894.tar.gz
bcm5719-llvm-2c82c3d033c16bf3f6bc3bb4cd9d9a1639742894.zip
OS X 10.9+ and iOS 7+ support load/store of big atomic objects.
rdar://13973577 Patch by Fariborz Jahanian. llvm-svn: 193935
Diffstat (limited to 'clang/lib/AST')
-rw-r--r--clang/lib/AST/ASTContext.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/clang/lib/AST/ASTContext.cpp b/clang/lib/AST/ASTContext.cpp
index 2ed345aec8d..6729986c8d5 100644
--- a/clang/lib/AST/ASTContext.cpp
+++ b/clang/lib/AST/ASTContext.cpp
@@ -8109,6 +8109,10 @@ bool ASTContext::AtomicUsesUnsupportedLibcall(const AtomicExpr *E) const {
if (!T.isOSDarwin())
return false;
+ if (!(T.isiOS() && T.isOSVersionLT(7)) &&
+ !(T.isMacOSX() && T.isOSVersionLT(10, 9)))
+ return false;
+
QualType AtomicTy = E->getPtr()->getType()->getPointeeType();
CharUnits sizeChars = getTypeSizeInChars(AtomicTy);
uint64_t Size = sizeChars.getQuantity();
OpenPOWER on IntegriCloud