| // RUN: %clang_cc1 -fsyntax-only -triple x86_64-apple-darwin10 -fblocks -verify -Wno-objc-root-class %s |
| // RUN: %clang_cc1 -x objective-c++ -fsyntax-only -triple x86_64-apple-darwin10 -fblocks -verify -Wno-objc-root-class %s |
| // expected-no-diagnostics |
| // rdar://9154582 |
| |
| @interface Blocky @end |
| |
| @implementation Blocky { |
| int _a; |
| } |
| - (int)doAThing { |
| ^{ |
| char self; |
| return _a; |
| }(); |
| return _a; |
| } |
| |
| @end |
| |
| |
| // rdar://9284603 |
| @interface ShadowSelf |
| { |
| int _anIvar; |
| } |
| @end |
| |
| @interface C { |
| int _cIvar; |
| } |
| @end |
| |
| @implementation ShadowSelf |
| - (void)doSomething { |
| __typeof(self) newSelf = self; |
| { |
| __typeof(self) self = newSelf; |
| (void)_anIvar; |
| } |
| { |
| C* self; |
| (void) _anIvar; |
| } |
| } |
| - (void)doAThing { |
| ^{ |
| id self; |
| (void)_anIvar; |
| }(); |
| } |
| @end |
| |