URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Only display areas with differences |
Details |
Blame |
View Log
Rev 305 |
Rev 338 |
// { dg-do run }
|
// { dg-do run }
|
// prms-id: 2960
|
// prms-id: 2960
|
|
|
extern "C" int printf(const char *, ...);
|
extern "C" int printf(const char *, ...);
|
|
|
class Test0 {
|
class Test0 {
|
public:
|
public:
|
virtual void f0() { } // works fine if this virtual removed
|
virtual void f0() { } // works fine if this virtual removed
|
};
|
};
|
|
|
class Test1 : public Test0 {
|
class Test1 : public Test0 {
|
public:
|
public:
|
void f1() { f2(); } // generates bus error here
|
void f1() { f2(); } // generates bus error here
|
virtual void f2() { printf("Test1::f2\n"); }
|
virtual void f2() { printf("Test1::f2\n"); }
|
};
|
};
|
|
|
class Test2 {
|
class Test2 {
|
public:
|
public:
|
virtual void f3() { }
|
virtual void f3() { }
|
};
|
};
|
|
|
class Test3 : public Test2, public Test1 { // works fine if Test1 first
|
class Test3 : public Test2, public Test1 { // works fine if Test1 first
|
public:
|
public:
|
virtual ~Test3() { f1(); } // calling f2 directly works
|
virtual ~Test3() { f1(); } // calling f2 directly works
|
virtual void f2() { printf("Test3::f2\n"); }
|
virtual void f2() { printf("Test3::f2\n"); }
|
};
|
};
|
|
|
int main() {
|
int main() {
|
Test3 t3;
|
Test3 t3;
|
return 0;
|
return 0;
|
}
|
}
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.