blob: 0f415b607dd72c08e3238c9b3f3af38d9b24c5b8 [file] [log] [blame]
Fariborz Jahaniana8f8dac2010-07-19 22:02:22 +00001// RUN: %clang_cc1 -fsyntax-only -verify %s
Fariborz Jahanian24fce282010-11-09 02:16:57 +00002// rdar://8191774
Fariborz Jahaniana8f8dac2010-07-19 22:02:22 +00003
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