30 lines
689 B
C
30 lines
689 B
C
// { dg-do run }
|
|
// Test for composite pointer types, as defined in [expr.rel],
|
|
// and common pointer to member types, as defined in [expr.eq].
|
|
|
|
struct A { int i; };
|
|
struct B : public A { };
|
|
|
|
int main ()
|
|
{
|
|
B b;
|
|
|
|
// The composite type is `A const *'
|
|
A* ap = &b;
|
|
const B* bp = &b;
|
|
if (ap != bp) // { dg-bogus "" } distinct types
|
|
return 1;
|
|
|
|
// The composite type is `B const *const *'
|
|
B *const * p = 0;
|
|
B const * * q = 0;
|
|
if (p != q) // { dg-bogus "" } distinct types
|
|
return 1;
|
|
|
|
// The common type is `int const B::*'
|
|
const int A::*apm = &A::i;
|
|
int B::*bpm = &A::i;
|
|
if (apm != bpm) // { dg-bogus "" } distinct types
|
|
return 1;
|
|
}
|