[clang] Implement lifetime analysis for lifetime_capture_by(X) (#115921)
[llvm-project.git] / clang / test / SemaObjC / protocol-qualified-class-unsupported.m
blob777084d8554bf1c528d22c4b298513f8c15c4974
1 // RUN: %clang_cc1 -fsyntax-only -verify %s
2 // expected-no-diagnostics
4 #include <stddef.h>
6 typedef struct objc_class *Class;
7 typedef struct objc_object {
8     Class isa;
9 } *id;
10 id objc_getClass(const char *s);
12 @interface Object
13 + self;
14 @end
16 @protocol Func
17 + (void) class_func0;
18 - (void) instance_func0;
19 @end
21 @interface Derived: Object <Func>
22 @end
24 @interface Derived2: Object <Func>
25 @end
27 static void doSomething(Class <Func> unsupportedObjectType) {
28   [unsupportedObjectType class_func0];
31 static void doSomethingElse(id <Func> pleaseConvertToThisType) {
32   [pleaseConvertToThisType class_func0];
35 int main(int argv, char *argc[]) {
36   doSomething([Derived self]);
37   doSomething([Derived2 self]);
38   doSomethingElse([Derived self]);
39   doSomethingElse([Derived2 self]);