[clang] Implement lifetime analysis for lifetime_capture_by(X) (#115921)
[llvm-project.git] / clang / test / PCH / chain-selectors.m
blobc211ec8e3db9985c24ab7eee61e4dfdfd3c4925b
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
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
7 @implementation X
8 -(void)f {}
9 -(void)f2 {}
10 -(void)g: (int)p {}
11 -(void)h: (int)p1 foo: (int)p2 {}
12 @end
14 void bar(void) {
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];
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}}
26 @implementation X (Blah)
27 - (void)test_Blah {
28   [self blah_method];
31 - (void)blah_method { }
32 @end
34 @implementation X (Blarg)
35 - (void)test_Blarg {
36   [self blarg_method];
39 - (void)blarg_method { }
40 @end