URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Only display areas with differences |
Details |
Blame |
View Log
Rev 154 |
Rev 816 |
// { dg-do run }
|
// { dg-do run }
|
// GROUPS passed vtable
|
// GROUPS passed vtable
|
extern "C" int printf (const char *, ...);
|
extern "C" int printf (const char *, ...);
|
enum E { vf_request, vf_event } want;
|
enum E { vf_request, vf_event } want;
|
|
|
int errs = 0;
|
int errs = 0;
|
|
|
class ivResource {
|
class ivResource {
|
public:
|
public:
|
virtual ~ivResource () { }
|
virtual ~ivResource () { }
|
};
|
};
|
|
|
class ivHandler : public ivResource {
|
class ivHandler : public ivResource {
|
public:
|
public:
|
virtual void event() { }
|
virtual void event() { }
|
};
|
};
|
|
|
class ivGlyph : public ivResource {
|
class ivGlyph : public ivResource {
|
public:
|
public:
|
virtual ~ivGlyph () { }
|
virtual ~ivGlyph () { }
|
virtual void request () {
|
virtual void request () {
|
if (want!=vf_request)
|
if (want!=vf_request)
|
++errs;
|
++errs;
|
}
|
}
|
};
|
};
|
|
|
class ItemView : public ivGlyph, public ivHandler {
|
class ItemView : public ivGlyph, public ivHandler {
|
public:
|
public:
|
virtual void event () {
|
virtual void event () {
|
if (want!=vf_event)
|
if (want!=vf_event)
|
++errs;
|
++errs;
|
}
|
}
|
} a;
|
} a;
|
|
|
ivGlyph *bar() {
|
ivGlyph *bar() {
|
return &a;
|
return &a;
|
}
|
}
|
|
|
ivHandler *bar2() {
|
ivHandler *bar2() {
|
return &a;
|
return &a;
|
}
|
}
|
|
|
int main() {
|
int main() {
|
want=vf_request;
|
want=vf_request;
|
bar()->request();
|
bar()->request();
|
want=vf_event;
|
want=vf_event;
|
bar2()->event();
|
bar2()->event();
|
if (errs) {
|
if (errs) {
|
printf("FAIL\n");
|
printf("FAIL\n");
|
return 1;
|
return 1;
|
}
|
}
|
printf("PASS\n");
|
printf("PASS\n");
|
return 0;
|
return 0;
|
}
|
}
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.