summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaExprObjC.cpp
diff options
context:
space:
mode:
authorFariborz Jahanian <fjahanian@apple.com>2014-10-28 17:26:21 +0000
committerFariborz Jahanian <fjahanian@apple.com>2014-10-28 17:26:21 +0000
commit214567ccfae6eb60b1ade4219d961fa50a840ed5 (patch)
treef3ba1a6cc3008e7458d77054050b4d7fc4c5b62c /clang/lib/Sema/SemaExprObjC.cpp
parent2ad0aba610052c5262c382b428079d3e7d3e3987 (diff)
downloadbcm5719-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.cpp21
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.
OpenPOWER on IntegriCloud