blob: 25ce8ba5993364262a8469658d6c6d7a49072760 [file] [log] [blame]
John McCalld1e40d52011-10-02 01:16:38 +00001// RUN: %clang_cc1 -fsyntax-only -triple x86_64-apple-darwin10 -fblocks -verify %s
2// RUN: %clang_cc1 -x objective-c++ -fsyntax-only -triple x86_64-apple-darwin10 -fblocks -verify %s
Fariborz Jahanianb8f17ab2011-04-12 23:39:33 +00003// rdar://9154582
4
5@interface Blocky @end
6
7@implementation Blocky {
8 int _a;
9}
Fariborz Jahanian98a54032011-07-12 17:16:56 +000010- (int)doAThing {
Fariborz Jahanianb8f17ab2011-04-12 23:39:33 +000011 ^{
Fariborz Jahanian98a54032011-07-12 17:16:56 +000012 char self;
13 return _a;
Fariborz Jahanianb8f17ab2011-04-12 23:39:33 +000014 }();
Fariborz Jahanian98a54032011-07-12 17:16:56 +000015 return _a;
Fariborz Jahanianb8f17ab2011-04-12 23:39:33 +000016}
17
18@end
19
Fariborz Jahanianeefa76e2011-04-15 17:04:42 +000020
21// rdar://9284603
22@interface ShadowSelf
23{
24 int _anIvar;
25}
26@end
27
28@interface C {
29 int _cIvar;
30}
31@end
32
33@implementation ShadowSelf
34- (void)doSomething {
35 __typeof(self) newSelf = self;
36 {
37 __typeof(self) self = newSelf;
38 (void)_anIvar;
39 }
40 {
Fariborz Jahanian98a54032011-07-12 17:16:56 +000041 C* self;
42 (void) _anIvar;
Fariborz Jahanianeefa76e2011-04-15 17:04:42 +000043 }
44}
45- (void)doAThing {
46 ^{
Fariborz Jahanian98a54032011-07-12 17:16:56 +000047 id self;
48 (void)_anIvar;
Fariborz Jahanianeefa76e2011-04-15 17:04:42 +000049 }();
50}
51@end
52