URL
https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk
Only display areas with differences |
Details |
Blame |
View Log
Rev 149 |
Rev 154 |
// { dg-do run }
|
// { dg-do run }
|
extern "C" void abort();
|
extern "C" void abort();
|
|
|
int ic;
|
int ic;
|
|
|
struct X
|
struct X
|
{
|
{
|
X() { ++ic; }
|
X() { ++ic; }
|
X( const X & ) { ++ic; }
|
X( const X & ) { ++ic; }
|
~X() { if (--ic < 0) abort(); }
|
~X() { if (--ic < 0) abort(); }
|
};
|
};
|
|
|
struct V
|
struct V
|
{
|
{
|
virtual ~V() {}
|
virtual ~V() {}
|
};
|
};
|
|
|
struct A : public virtual V
|
struct A : public virtual V
|
{
|
{
|
};
|
};
|
|
|
struct B : public virtual V
|
struct B : public virtual V
|
{
|
{
|
virtual void foo( X ) = 0;
|
virtual void foo( X ) = 0;
|
};
|
};
|
|
|
struct D : public A, public virtual B
|
struct D : public A, public virtual B
|
{
|
{
|
virtual void foo( X ) {}
|
virtual void foo( X ) {}
|
};
|
};
|
|
|
int main()
|
int main()
|
{
|
{
|
B *b = new D;
|
B *b = new D;
|
b->foo( X() );
|
b->foo( X() );
|
}
|
}
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.