Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / clang / test / SemaObjC / protocol-implementation-inherited.m
blob45010d5e2e75523064accd8c370f9e804cedc256
1 // RUN: %clang_cc1 -fsyntax-only -verify %s
2 // expected-no-diagnostics
4 @protocol P0
5 -bar;
6 @end
8 @interface A <P0>
9 @end
11 // Interface conforms to inherited protocol
13 @interface B0 : A <P0>
14 @end
16 @implementation B0
17 @end
19 // Interface conforms to a protocol which extends another. The other
20 // protocol is inherited, and extended methods are implemented.
22 @protocol P1 <P0>
23 -foo;
24 @end
26 @interface B1 : A <P1>
27 @end
29 @implementation B1
30 -foo { return 0; };
31 @end
33 // Interface conforms to a protocol whose methods are provided by an
34 // alternate inherited protocol.
36 @protocol P2
37 -bar;
38 @end
40 @interface B2 : A <P2>
41 @end
43 @implementation B2
44 @end
46 // Interface conforms to a protocol whose methods are provided by a base class.
48 @interface A1 
49 -bar;
50 @end
52 @interface B3 : A1 <P2>
53 @end
55 @implementation B3
56 @end