diff options
| author | Akira Hatanaka <ahatanaka@apple.com> | 2019-04-17 23:14:44 +0000 |
|---|---|---|
| committer | Akira Hatanaka <ahatanaka@apple.com> | 2019-04-17 23:14:44 +0000 |
| commit | ac57af32843f0670b00eea5cf9f993241907f5ce (patch) | |
| tree | 1dd7dcc16bdfc6db2e43e3c63db57466b41265ef /clang/test/SemaObjC | |
| parent | 0b19f5aef94c734f45d91b20b48e98b257692792 (diff) | |
| download | bcm5719-llvm-ac57af32843f0670b00eea5cf9f993241907f5ce.tar.gz bcm5719-llvm-ac57af32843f0670b00eea5cf9f993241907f5ce.zip | |
[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
llvm-svn: 358624
Diffstat (limited to 'clang/test/SemaObjC')
| -rw-r--r-- | clang/test/SemaObjC/warn-implicit-self-in-block.m | 18 |
1 files changed, 0 insertions, 18 deletions
diff --git a/clang/test/SemaObjC/warn-implicit-self-in-block.m b/clang/test/SemaObjC/warn-implicit-self-in-block.m deleted file mode 100644 index a7ee16ec700..00000000000 --- a/clang/test/SemaObjC/warn-implicit-self-in-block.m +++ /dev/null @@ -1,18 +0,0 @@ -// RUN: %clang_cc1 -x objective-c -fobjc-arc -fblocks -Wimplicit-retain-self -verify %s -// rdar://11194874 - -@interface Root @end - -@interface I : Root -{ - int _bar; -} -@end - -@implementation I - - (void)foo{ - ^{ - _bar = 3; // expected-warning {{block implicitly retains 'self'; explicitly mention 'self' to indicate this is intended behavior}} - }(); - } -@end |

