xref: /minix3/external/bsd/llvm/dist/clang/test/SemaObjC/compare-qualified-class.m (revision b5e2faaaaf60a8b9a02f8d72f64caa56a87eb312)
1// RUN: %clang_cc1 -fsyntax-only -verify %s
2// rdar://8191774
3
4@protocol SomeProtocol
5@end
6
7@protocol SomeProtocol1
8@end
9
10@interface SomeObject <SomeProtocol>
11@end
12
13int main () {
14    Class <SomeProtocol> classA;
15    Class <SomeProtocol> classB;
16    Class <SomeProtocol, SomeProtocol1> classC;
17    Class <SomeProtocol1> classD;
18    void * pv = 0;
19    Class c = (Class)0;;
20    if (pv)
21      return classA == pv;
22
23    if (c)
24      return classA == c;
25
26    return classA == classB  || classA == classC ||
27           classC == classA ||
28           classA == classD; // expected-warning {{comparison of distinct pointer types ('Class<SomeProtocol> *' and 'Class<SomeProtocol1> *')}}
29}
30
31