blob: 36a9ef571d5ab502abcb15771490d3185424ce87 [file] [log] [blame]
Patrick Beardacfbe9e2012-04-06 18:12:22 +00001// 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
Andy Gibbsc6e68da2012-10-19 12:44:48 +00003// expected-no-diagnostics
Fariborz Jahanian82bc4362011-04-12 23:39:33 +00004// rdar://9154582
5
6@interface Blocky @end
7
8@implementation Blocky {
9 int _a;
10}
Fariborz Jahanian7f4427f2011-07-12 17:16:56 +000011- (int)doAThing {
Fariborz Jahanian82bc4362011-04-12 23:39:33 +000012 ^{
Fariborz Jahanian7f4427f2011-07-12 17:16:56 +000013 char self;
14 return _a;
Fariborz Jahanian82bc4362011-04-12 23:39:33 +000015 }();
Fariborz Jahanian7f4427f2011-07-12 17:16:56 +000016 return _a;
Fariborz Jahanian82bc4362011-04-12 23:39:33 +000017}
18
19@end
20
Fariborz Jahanian66a6c062011-04-15 17:04:42 +000021
22// rdar://9284603
23@interface ShadowSelf
24{
25 int _anIvar;
26}
27@end
28
29@interface C {
30 int _cIvar;
31}
32@end
33
34@implementation ShadowSelf
35- (void)doSomething {
36 __typeof(self) newSelf = self;
37 {
38 __typeof(self) self = newSelf;
39 (void)_anIvar;
40 }
41 {
Fariborz Jahanian7f4427f2011-07-12 17:16:56 +000042 C* self;
43 (void) _anIvar;
Fariborz Jahanian66a6c062011-04-15 17:04:42 +000044 }
45}
46- (void)doAThing {
47 ^{
Fariborz Jahanian7f4427f2011-07-12 17:16:56 +000048 id self;
49 (void)_anIvar;
Fariborz Jahanian66a6c062011-04-15 17:04:42 +000050 }();
51}
52@end
53