URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Only display areas with differences |
Details |
Blame |
View Log
Rev 301 |
Rev 338 |
// PR c++/16810
|
// PR c++/16810
|
|
|
struct C {
|
struct C {
|
virtual void f() {}
|
virtual void f() {}
|
};
|
};
|
|
|
struct B {virtual ~B() {} };
|
struct B {virtual ~B() {} };
|
|
|
class D : public B, public C
|
class D : public B, public C
|
{
|
{
|
public:
|
public:
|
virtual void f() {}
|
virtual void f() {}
|
};
|
};
|
|
|
typedef void ( C::*FP)();
|
typedef void ( C::*FP)();
|
typedef void ( D::*D_f)();
|
typedef void ( D::*D_f)();
|
|
|
int main() {
|
int main() {
|
D *d = new D();
|
D *d = new D();
|
C *c = d;
|
C *c = d;
|
|
|
const FP fptr = (FP) &D::f;;
|
const FP fptr = (FP) &D::f;;
|
(d->* (D_f)fptr)();
|
(d->* (D_f)fptr)();
|
}
|
}
|
|
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.