[clang] Implement lifetime analysis for lifetime_capture_by(X) (#115921)
[llvm-project.git] / clang / test / SemaObjC / self-declared-in-block.m
blob0847698a5592e43e9606ddfee0c6f0c96afbe2e5
1 // RUN: %clang_cc1 -fsyntax-only -triple x86_64-apple-darwin10  -fblocks -verify -Wno-objc-root-class %s 
2 // RUN: %clang_cc1 -x objective-c++ -fsyntax-only -triple x86_64-apple-darwin10  -fblocks -verify -Wno-objc-root-class %s 
3 // expected-no-diagnostics
5 @interface Blocky @end
7 @implementation Blocky {
8     int _a;
10 - (int)doAThing {
11     ^{
12         char self;
13         return _a;
14     }();
15     return _a;
18 @end
20 @interface ShadowSelf
22     int _anIvar;
24 @end
26 @interface C {
27   int _cIvar;
29 @end
31 @implementation ShadowSelf 
32 - (void)doSomething {
33     __typeof(self) newSelf = self;
34     {
35         __typeof(self) self = newSelf;
36         (void)_anIvar;
37     }
38     {
39       C* self;  
40       (void) _anIvar;
41     }
43 - (void)doAThing {
44     ^{
45         id self;
46         (void)_anIvar;
47     }();
49 @end