summaryrefslogtreecommitdiff
path: root/lib/Sema/SemaExprObjC.cpp
diff options
context:
space:
mode:
authorFariborz Jahanian <fjahanian@apple.com>2014-06-18 22:50:40 +0000
committerFariborz Jahanian <fjahanian@apple.com>2014-06-18 22:50:40 +0000
commit8e5db87d610ae45c13af64cb8457b11b6e363d26 (patch)
tree0c709e8221d709338d04e1222c04b1ff1672c56e /lib/Sema/SemaExprObjC.cpp
parentba5449005fc98569e023fcf9595d6e9f542ba41b (diff)
downloadclang-8e5db87d610ae45c13af64cb8457b11b6e363d26.tar.gz
clang-8e5db87d610ae45c13af64cb8457b11b6e363d26.tar.bz2
clang-8e5db87d610ae45c13af64cb8457b11b6e363d26.tar.xz
Objective-C ARC. Allow conversion of (void*) pointers to
retainable ObjC pointers without requiring a bridge-cast by recognizing this as a +0 context. // rdar://16627903 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211234 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Sema/SemaExprObjC.cpp')
-rw-r--r--lib/Sema/SemaExprObjC.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/Sema/SemaExprObjC.cpp b/lib/Sema/SemaExprObjC.cpp
index 57e1681fe4..23c57cf139 100644
--- a/lib/Sema/SemaExprObjC.cpp
+++ b/lib/Sema/SemaExprObjC.cpp
@@ -3168,7 +3168,9 @@ diagnoseObjCARCConversion(Sema &S, SourceRange castRange,
if ((castACTC == ACTC_coreFoundation && exprACTC == ACTC_retainable &&
ObjCBridgeRelatedAttrFromType(castType, TDNDecl)) ||
(exprACTC == ACTC_coreFoundation && castACTC == ACTC_retainable &&
- ObjCBridgeRelatedAttrFromType(castExprType, TDNDecl)))
+ ObjCBridgeRelatedAttrFromType(castExprType, TDNDecl)) ||
+ (exprACTC ==ACTC_voidPtr && castACTC == ACTC_retainable &&
+ CCK == Sema::CCK_ImplicitConversion))
return;
unsigned srcKind = 0;