blob: f3955da3bc28c86e4574d9f2a0909ccadb1b9548 [file] [log] [blame]
Fariborz Jahanian878f8502012-04-04 20:05:25 +00001// RUN: %clang_cc1 -fsyntax-only -fobjc-runtime-has-weak -fobjc-arc -fblocks -Wreceiver-is-weak -verify %s
2// rdar://10225276
3
4@interface Test0
5- (void) setBlock: (void(^)(void)) block;
6- (void) addBlock: (void(^)(void)) block;
7- (void) actNow;
8@end
9
10void test0(Test0 *x) {
11 __weak Test0 *weakx = x;
12 [x addBlock: ^{ [weakx actNow]; }]; // expected-warning {{weak receiver may be unpredictably null in ARC mode}}
13 [x setBlock: ^{ [weakx actNow]; }]; // expected-warning {{weak receiver may be unpredictably null in ARC mode}}
14 x.block = ^{ [weakx actNow]; }; // expected-warning {{weak receiver may be unpredictably null in ARC mode}}
15
16 [weakx addBlock: ^{ [x actNow]; }]; // expected-warning {{weak receiver may be unpredictably null in ARC mode}}
17 [weakx setBlock: ^{ [x actNow]; }]; // expected-warning {{weak receiver may be unpredictably null in ARC mode}}
18 weakx.block = ^{ [x actNow]; };
19}