[Sema][ObjC] Don't warn about an implicitly retained self if the
retaining block and all of the enclosing blocks are non-escaping.
If the block implicitly retaining self doesn't escape, there is no risk
of creating retain cycles, so clang shouldn't diagnose it and force
users to add self-> to silence the diagnostic.
Also, fix a bug where clang was failing to diagnose an implicitly
retained self inside a c++ lambda nested inside a block.
rdar://problem/
25059955
Differential Revision: https://reviews.llvm.org/D60736
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@358624
91177308-0d34-0410-b5e6-
96231b3b80d8