OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [gnu-src/] [gcc-4.2.2/] [gcc/] [testsuite/] [g++.old-deja/] [g++.other/] [thunk1.C] - Diff between revs 149 and 154

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() );
}
}
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.