brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.1 KiB · dddf424 Raw
61 lines · cpp
1// RUN: %clang_cc1 -fsyntax-only -verify %s2 3class Base { };4class Derived1 : public Base { };5class Derived2 : public Base { };6 7void 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 18void 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 29// PR469130int ptrcmp1(void *a, int *b) {31  return a < b;32}33int ptrcmp2(long *a, int *b) {34  return a < b; // expected-error{{distinct}}35}36 37// PR5509 - Multi-level pointers38int f2() {39  typedef int *IntPtr;40  typedef IntPtr *IntPtrPtr;41  typedef IntPtr const *IntPtrConstPtr;42  IntPtrConstPtr i = 0;43  IntPtrPtr j = 0;44  return i != j;45}46 47// PR576348typedef double Matrix4[4][4];49 50bool f(Matrix4 m1, const Matrix4 m2) {51  return m1 != m2;52}53 54// PR634655bool f1(bool b, void **p, const void **q) {56  if (p == q)57    return false;58 59  return b? p : q;60}61