diff options
| author | Fariborz Jahanian <fjahanian@apple.com> | 2014-10-28 17:26:21 +0000 |
|---|---|---|
| committer | Fariborz Jahanian <fjahanian@apple.com> | 2014-10-28 17:26:21 +0000 |
| commit | 214567ccfae6eb60b1ade4219d961fa50a840ed5 (patch) | |
| tree | f3ba1a6cc3008e7458d77054050b4d7fc4c5b62c /clang/lib/Sema/SemaExprObjC.cpp | |
| parent | 2ad0aba610052c5262c382b428079d3e7d3e3987 (diff) | |
| download | bcm5719-llvm-214567ccfae6eb60b1ade4219d961fa50a840ed5.tar.gz bcm5719-llvm-214567ccfae6eb60b1ade4219d961fa50a840ed5.zip | |
[Objective-C]. revert r220740,r220727
llvm-svn: 220802
Diffstat (limited to 'clang/lib/Sema/SemaExprObjC.cpp')
| -rw-r--r-- | clang/lib/Sema/SemaExprObjC.cpp | 21 |
1 files changed, 5 insertions, 16 deletions
diff --git a/clang/lib/Sema/SemaExprObjC.cpp b/clang/lib/Sema/SemaExprObjC.cpp index 5746e732943..40ab95b6ec5 100644 --- a/clang/lib/Sema/SemaExprObjC.cpp +++ b/clang/lib/Sema/SemaExprObjC.cpp @@ -4075,22 +4075,11 @@ ExprResult Sema::BuildObjCBridgedCast(SourceLocation LParenLoc, // Okay: id -> CF CK = CK_BitCast; switch (Kind) { - case OBC_Bridge: { - const ImplicitCastExpr *implCE = dyn_cast<ImplicitCastExpr>(SubExpr); - while (implCE && implCE->getCastKind() == CK_BitCast) - implCE = dyn_cast<ImplicitCastExpr>(implCE->getSubExpr()); - if (implCE && (implCE->getCastKind() == CK_ARCConsumeObject)) - if (const Expr *LitExp = implCE->getSubExpr()) - if ((isa<ObjCArrayLiteral>(LitExp) || - isa<ObjCDictionaryLiteral>(LitExp)) && - T->isCARCBridgableType()) - Diag(BridgeKeywordLoc, diag::warn_arc_consumed_object_released) - << T << implCE->getType(); - // Reclaiming a value that's going to be __bridge-casted to CF - // is very dangerous, so we don't do it. - SubExpr = maybeUndoReclaimObject(SubExpr); - break; - } + case OBC_Bridge: + // Reclaiming a value that's going to be __bridge-casted to CF + // is very dangerous, so we don't do it. + SubExpr = maybeUndoReclaimObject(SubExpr); + break; case OBC_BridgeRetained: // Produce the object before casting it. |

