// RUN: %clang_cc1 -fsyntax-only -verify %s // rdar://8191774 @protocol SomeProtocol @end @protocol SomeProtocol1 @end @interface SomeObject <SomeProtocol> @end int main () { Class <SomeProtocol> classA; Class <SomeProtocol> classB; Class <SomeProtocol, SomeProtocol1> classC; Class <SomeProtocol1> classD; void * pv = 0; Class c = (Class)0;; if (pv) return classA == pv; if (c) return classA == c; return classA == classB || classA == classC || classC == classA || classA == classD; // expected-warning {{comparison of distinct pointer types ('Class<SomeProtocol> *' and 'Class<SomeProtocol1> *')}} }