// PR c++/29066 | |
// Test pointer to member function comparison | |
// { dg-do run } | |
extern "C" void abort (void); | |
struct X | |
{ | |
virtual void a(void)=0; | |
}; | |
struct Z : public X | |
{ | |
void a(void) {} | |
}; | |
void f(X *obj) | |
{ | |
void (X::*xp)(void) = 0; | |
void (X::*xp2)(void) = 0; | |
xp = &X::a; | |
if (xp == xp2) | |
{ | |
abort(); | |
} | |
if (xp == 0) | |
{ | |
abort(); | |
} | |
} | |
int main(int argc, char* argv[]) | |
{ | |
Z myobj; | |
f(&myobj); | |
return 0; | |
} |