brintos

brintos / llvm-project-archived public Read only

0
0
Text · 778 B · 777084d Raw
42 lines · plain
1// RUN: %clang_cc1 -fsyntax-only -verify %s2// expected-no-diagnostics3 4#include <stddef.h>5 6typedef struct objc_class *Class;7typedef struct objc_object {8    Class isa;9} *id;10id objc_getClass(const char *s);11 12@interface Object13+ self;14@end15 16@protocol Func17+ (void) class_func0;18- (void) instance_func0;19@end20 21@interface Derived: Object <Func>22@end23 24@interface Derived2: Object <Func>25@end26 27static void doSomething(Class <Func> unsupportedObjectType) {28  [unsupportedObjectType class_func0];29}30 31static void doSomethingElse(id <Func> pleaseConvertToThisType) {32  [pleaseConvertToThisType class_func0];33}34 35int main(int argv, char *argc[]) {36  doSomething([Derived self]);37  doSomething([Derived2 self]);38  doSomethingElse([Derived self]);39  doSomethingElse([Derived2 self]);40}41 42