Home | History | Annotate | Download | only in SemaObjC
      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