Mercurial > hg > CbC > CbC_llvm
comparison clang/test/SemaObjC/protocol-qualified-class-unsupported.m @ 150:1d019706d866
LLVM10
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 15:10:13 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
147:c2174574ed3a | 150:1d019706d866 |
---|---|
1 // RUN: %clang_cc1 -fsyntax-only -verify %s | |
2 // expected-no-diagnostics | |
3 | |
4 #include <stddef.h> | |
5 | |
6 typedef struct objc_class *Class; | |
7 typedef struct objc_object { | |
8 Class isa; | |
9 } *id; | |
10 id objc_getClass(const char *s); | |
11 | |
12 @interface Object | |
13 + self; | |
14 @end | |
15 | |
16 @protocol Func | |
17 + (void) class_func0; | |
18 - (void) instance_func0; | |
19 @end | |
20 | |
21 @interface Derived: Object <Func> | |
22 @end | |
23 | |
24 @interface Derived2: Object <Func> | |
25 @end | |
26 | |
27 static void doSomething(Class <Func> unsupportedObjectType) { | |
28 [unsupportedObjectType class_func0]; | |
29 } | |
30 | |
31 static void doSomethingElse(id <Func> pleaseConvertToThisType) { | |
32 [pleaseConvertToThisType class_func0]; | |
33 } | |
34 | |
35 int main(int argv, char *argc[]) { | |
36 doSomething([Derived self]); | |
37 doSomething([Derived2 self]); | |
38 doSomethingElse([Derived self]); | |
39 doSomethingElse([Derived2 self]); | |
40 } | |
41 |