blob: 10f67c6f00f0b862bf969149115adf4d3581a0b2 [file] [log] [blame]
// { dg-do run }
int fail;
class A *ptr_a;
class A {
public:
char space1[24];
virtual void foo() {
if (this != ptr_a)
fail = 1;
}
};
class Space {
char space2[36];
};
class B : public Space, public A {
} b;
void (B::*pmf1)() = &A::foo;
void (A::*pmf2)() = &A::foo;
int main() {
ptr_a = &b;
(b .* (void (B::*) ()) &A::foo) ();
(b .* pmf1) ();
(b .* pmf2) ();
(b .* &A::foo) ();
return fail;
}