From 4db5c3c83a22268ff0eeaa6ca7fd500668533487 Mon Sep 17 00:00:00 2001 From: John McCall Date: Thu, 7 Jul 2011 06:58:02 +0000 Subject: In ARC, reclaim all return values of retainable type, not just those where we have an immediate need of a retained value. As an exception, don't do this when the call is made as the immediate operand of a __bridge retain. This is more in the way of a workaround than an actual guarantee, so it's acceptable to be brittle here. rdar://problem/9504800 llvm-svn: 134605 --- clang/lib/Sema/SemaChecking.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'clang/lib/Sema/SemaChecking.cpp') diff --git a/clang/lib/Sema/SemaChecking.cpp b/clang/lib/Sema/SemaChecking.cpp index 35b6e9abc9c..8bad032911f 100644 --- a/clang/lib/Sema/SemaChecking.cpp +++ b/clang/lib/Sema/SemaChecking.cpp @@ -3543,6 +3543,7 @@ static bool findRetainCycleOwner(Expr *e, RetainCycleOwner &owner) { case CK_BitCast: case CK_LValueBitCast: case CK_LValueToRValue: + case CK_ObjCReclaimReturnedObject: e = cast->getSubExpr(); continue; -- cgit v1.2.3