Home | History | Annotate | Download | only in PCH
      1 // RUN: %clang_cc1 -fsyntax-only -verify -Wno-objc-root-class %s -Wselector -include %S/Inputs/chain-selectors1.h -include %S/Inputs/chain-selectors2.h
      2 
      3 // RUN: %clang_cc1 -x objective-c -Wno-objc-root-class -emit-pch -o %t1 %S/Inputs/chain-selectors1.h
      4 // RUN: %clang_cc1 -x objective-c -Wno-objc-root-class -emit-pch -o %t2 %S/Inputs/chain-selectors2.h -include-pch %t1
      5 // RUN: %clang_cc1 -fsyntax-only -verify -Wno-objc-root-class %s -Wselector -include-pch %t2
      6 
      7 @implementation X
      8 -(void)f {}
      9 -(void)f2 {}
     10 -(void)g: (int)p {}
     11 -(void)h: (int)p1 foo: (int)p2 {}
     12 @end
     13 
     14 void bar() {
     15   id a = 0;
     16   [a nothing]; // expected-warning {{method '-nothing' not found}}
     17   [a f];
     18   // FIXME: Can't verify notes in headers
     19   //[a f2];
     20 
     21   (void)@selector(x); // expected-warning {{no method with selector 'x' is implemented in this translation unit}}
     22   (void)@selector(y); // expected-warning {{no method with selector 'y' is implemented in this translation unit}}
     23   (void)@selector(e); // expected-warning {{no method with selector 'e' is implemented in this translation unit}}
     24 }
     25 
     26 @implementation X (Blah)
     27 - (void)test_Blah {
     28   [self blah_method];
     29 }
     30 
     31 - (void)blah_method { }
     32 @end
     33 
     34 @implementation X (Blarg)
     35 - (void)test_Blarg {
     36   [self blarg_method];
     37 }
     38 
     39 - (void)blarg_method { }
     40 @end
     41