1 // RUN: clang-cc -fsyntax-only -verify %s
2 
3 class Base { };
4 class Derived1 : public Base { };
5 class Derived2 : public Base { };
6 
7 void f0(volatile Base *b, Derived1 *d1, const Derived2 *d2) {
8   if (b > d1)
9     return;
10   if (d1 <= b)
11     return;
12   if (b > d2)
13     return;
14   if (d1 >= d2) // expected-error{{comparison of distinct}}
15     return;
16 }
17 
18 void f1(volatile Base *b, Derived1 *d1, const Derived2 *d2) {
19   if (b == d1)
20     return;
21   if (d1 == b)
22     return;
23   if (b != d2)
24     return;
25   if (d1 == d2) // expected-error{{comparison of distinct}}
26     return;
27 }
28