blob: 48eb91ae2372010bd45d021fabb1b4c0e7ab889c [file] [log] [blame]
Douglas Gregorf1d1ca52011-12-01 01:37:36 +00001// RUN: %clang_cc1 -funknown-anytype -fsyntax-only -fdebugger-support -verify %s
2
3extern __unknown_anytype test0;
4extern __unknown_anytype test1();
5
6@interface A
7- (int*)getIntPtr;
8- (double*)getSomePtr;
9@end
10
11@interface B
12- (float*)getFloatPtr;
13- (short*)getSomePtr;
14@end
15
16void test_unknown_anytype_receiver() {
17 int *ip = [test0 getIntPtr];
18 float *fp = [test1() getFloatPtr];
19 double *dp = [test1() getSomePtr]; // okay: picks first method found
20 [[test0 unknownMethod] otherUnknownMethod]; // expected-error{{no known method '-otherUnknownMethod'; cast the message send to the method's return type}}
21 (void)(int)[[test0 unknownMethod] otherUnknownMethod];;
22 [[test1() unknownMethod] otherUnknownMethod]; // expected-error{{no known method '-otherUnknownMethod'; cast the message send to the method's return type}}
23 (void)(id)[[test1() unknownMethod] otherUnknownMethod];
24}