brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.3 KiB · e944e54 Raw
53 lines · plain
1// RUN: %clang_cc1 -fsyntax-only -verify %s2// expected-no-diagnostics3 4@protocol MyProtocol @end5 6@interface NSObject @end7 8@interface NSInterm : NSObject <MyProtocol>9@end10 11@interface NSArray : NSInterm 12@end13 14@interface NSSet : NSObject <MyProtocol>15@end16 17 18@interface N1 : NSObject19@end20 21@interface N1() <MyProtocol>22@end23 24NSObject* test (int argc) {25    NSArray *array = ((void*)0);26    NSSet *set = ((void*)0);27    return (argc) ? set : array ;28}29 30 31NSObject* test1 (int argc) {32    NSArray *array = ((void*)0);33    NSSet *set = ((void*)0);34    id <MyProtocol> instance = (argc) ? array : set;35    id <MyProtocol> instance1 = (argc) ? set : array;36 37    N1 *n1 = ((void*)0);38    id <MyProtocol> instance2 = (argc) ? set : n1;39    id <MyProtocol> instance3 = (argc) ? n1 : array;40 41    NSArray<MyProtocol> *qual_array = ((void*)0);42    id <MyProtocol> instance4 = (argc) ? array : qual_array;43    id <MyProtocol> instance5 = (argc) ? qual_array : array;44    NSSet<MyProtocol> *qual_set = ((void*)0);45    id <MyProtocol> instance6 = (argc) ? qual_set : qual_array;46    id <MyProtocol> instance7 = (argc) ? qual_set : array;47    id <MyProtocol> instance8 = (argc) ? qual_array : set;48    id <MyProtocol> instance9 = (argc) ? qual_array : qual_set;49 50 51    return (argc) ? array : set;52}53