]> granicus.if.org Git - clang/commit
In ARC, reclaim all return values of retainable type, not just those
authorJohn McCall <rjmccall@apple.com>
Thu, 7 Jul 2011 06:58:02 +0000 (06:58 +0000)
committerJohn McCall <rjmccall@apple.com>
Thu, 7 Jul 2011 06:58:02 +0000 (06:58 +0000)
commit7e5e5f4cc36fe50f46ad76dca7a266434c94f475
tree58c8d913ddf2c68a1558a3a0792b3288ee0d04a1
parent72ac120023abb73f3ff9386e193fed55fa9a96e2
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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134605 91177308-0d34-0410-b5e6-96231b3b80d8
21 files changed:
include/clang/AST/Expr.h
include/clang/AST/OperationKinds.h
include/clang/AST/Stmt.h
lib/ARCMigrate/TransRetainReleaseDealloc.cpp
lib/ARCMigrate/TransformActions.cpp
lib/ARCMigrate/Transforms.cpp
lib/AST/Expr.cpp
lib/AST/ExprConstant.cpp
lib/AST/Stmt.cpp
lib/CodeGen/CGExpr.cpp
lib/CodeGen/CGExprAgg.cpp
lib/CodeGen/CGExprComplex.cpp
lib/CodeGen/CGExprConstant.cpp
lib/CodeGen/CGExprScalar.cpp
lib/CodeGen/CGObjC.cpp
lib/Sema/SemaChecking.cpp
lib/Sema/SemaExprCXX.cpp
lib/Sema/SemaExprObjC.cpp
lib/StaticAnalyzer/Core/ExprEngine.cpp
test/CodeGenObjC/arc.m
test/CodeGenObjCXX/arc.mm