[clang] Implement lifetime analysis for lifetime_capture_by(X) (#115921)
[llvm-project.git] / clang / test / SemaObjC / class-proto-1.m
blob2658f2f1930bd8ed40d2a6b2531aeebabf6e6cf5
1 // RUN: %clang_cc1 -fsyntax-only -verify %s
3 @interface INTF1 @end
5 @protocol p1,p2,p3; // expected-note {{protocol 'p2' has no definition}} \
6                     // expected-note {{protocol 'p3' has no definition}}
8 @protocol p1;
10 @protocol PROTO1
11 - (INTF1<p1>*) meth;
12 @end
14 @protocol p1 @end
16 @interface I1 <p1> @end
18 @interface E1 <p2> @end // expected-warning {{cannot find protocol definition for 'p2'}}
20 @protocol p2 @end
23 @interface I2 <p1,p2> @end
25 @interface E2 <p1,p2,p3> @end  // expected-warning {{cannot find protocol definition for 'p3'}}
27 @class U1, U2; // expected-note {{forward declaration of class here}}
29 @interface E3 : U1 @end // expected-error {{attempting to use the forward class 'U1' as superclass of 'E3'}}
32 @interface I3 : E3  @end
34 @interface U2 @end
36 @interface I4 : U2 <p1,p2>
37 @end
39 @interface NSObject @end
41 @protocol UndefinedParentProtocol; // expected-note {{protocol 'UndefinedParentProtocol' has no definition}}
43 @protocol UndefinedProtocol <UndefinedParentProtocol>
44 @end
46 @interface SomeObject : NSObject <UndefinedProtocol> // expected-warning {{cannot find protocol definition for 'UndefinedProtocol'}}
47 @end