URL
https://opencores.org/ocsvn/scarts/scarts/trunk
Subversion Repositories scarts
[/] [scarts/] [trunk/] [toolchain/] [scarts-gcc/] [gcc-4.1.1/] [gcc/] [testsuite/] [g++.old-deja/] [g++.other/] [pmf4.C] - Rev 12
Compare with Previous | Blame | View Log
// { dg-do run }
// Bug: g++ doesn't compensate for finding a virtual function in a
// non-primary vtable when generating PMFs.
// Submitted by Jason Merrill <jason@cygnus.com>
struct A {
virtual ~A() {}
};
struct B {
virtual void f () = 0;
};
struct C : public A, public B {
void f ();
};
void (C::* B_f)() = &B::f; // this works
void (C::* C_f)() = &C::f; // this breaks
C* p;
void C::f ()
{
p = this;
}
int main()
{
C c;
(c.*B_f)();
if (p != &c)
return 1;
(c.*C_f)();
if (p != &c)
return 1;
}