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
4// rdar://9154582
5
6@interface Blocky @end
7
8@implementation Blocky {
9    int _a;
10}
11- (int)doAThing {
12    ^{
13        char self;
14        return _a;
15    }();
16    return _a;
17}
18
19@end
20
21
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    {
42      C* self;
43      (void) _anIvar;
44    }
45}
46- (void)doAThing {
47    ^{
48        id self;
49	(void)_anIvar;
50    }();
51}
52@end
53
54