]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - test/SemaObjC/compare-qualified-class.m
Vendor import of clang release_34 branch r197841 (effectively, 3.4 RC3):
[FreeBSD/FreeBSD.git] / test / SemaObjC / compare-qualified-class.m
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
13 int 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