blob: bba51bb8178f47367045b7e6883c7be157037975 [file] [log] [blame]
Fariborz Jahaniandb07b3f2009-10-27 23:02:38 +00001// RUN: clang-cc -fsyntax-only -verify %s
2
Fariborz Jahaniane23fa2d2009-10-30 01:13:23 +00003@protocol MyProtocol @end
4
Fariborz Jahaniandb07b3f2009-10-27 23:02:38 +00005@interface NSObject @end
6
Fariborz Jahaniane23fa2d2009-10-30 01:13:23 +00007@interface NSInterm : NSObject <MyProtocol>
Fariborz Jahaniandb07b3f2009-10-27 23:02:38 +00008@end
9
10@interface NSArray : NSInterm
11@end
12
Fariborz Jahaniane23fa2d2009-10-30 01:13:23 +000013@interface NSSet : NSObject <MyProtocol>
Fariborz Jahaniandb07b3f2009-10-27 23:02:38 +000014@end
15
16
Fariborz Jahaniane23fa2d2009-10-30 01:13:23 +000017@interface N1 : NSObject
18@end
19
20@interface N1() <MyProtocol>
21@end
22
Fariborz Jahaniandb07b3f2009-10-27 23:02:38 +000023NSObject* test (int argc) {
24 NSArray *array = ((void*)0);
25 NSSet *set = ((void*)0);
26 return (argc) ? set : array ;
27}
28
29
30NSObject* test1 (int argc) {
31 NSArray *array = ((void*)0);
32 NSSet *set = ((void*)0);
Fariborz Jahaniane23fa2d2009-10-30 01:13:23 +000033 id <MyProtocol> instance = (argc) ? array : set;
34 id <MyProtocol> instance1 = (argc) ? set : array;
35
36 N1 *n1 = ((void*)0);
37 id <MyProtocol> instance2 = (argc) ? set : n1;
38 id <MyProtocol> instance3 = (argc) ? n1 : array;
39
40 NSArray<MyProtocol> *qual_array = ((void*)0);
41 id <MyProtocol> instance4 = (argc) ? array : qual_array;
42 id <MyProtocol> instance5 = (argc) ? qual_array : array;
43 NSSet<MyProtocol> *qual_set = ((void*)0);
44 id <MyProtocol> instance6 = (argc) ? qual_set : qual_array;
45 id <MyProtocol> instance7 = (argc) ? qual_set : array;
46 id <MyProtocol> instance8 = (argc) ? qual_array : set;
47 id <MyProtocol> instance9 = (argc) ? qual_array : qual_set;
48
49
Fariborz Jahaniandb07b3f2009-10-27 23:02:38 +000050 return (argc) ? array : set;
51}