URL
https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk
Subversion Repositories openrisc_2011-10-31
[/] [openrisc/] [tags/] [gnu-src/] [gcc-4.5.1/] [gcc-4.5.1-or32-1.0rc2/] [gcc/] [testsuite/] [g++.old-deja/] [g++.abi/] [primary3.C] - Rev 384
Compare with Previous | Blame | View Log
// { dg-do run }
// Copyright (C) 2000 Free Software Foundation, Inc.
// Contributed by Nathan Sidwell 4 February 2001 <nathan@codesourcery.com>
// Check primary bases are chosen correctly.
struct A {virtual void Foo () {}};
struct B1 : virtual A {};
struct B2 : virtual A {};
struct C : virtual B1, B2 {};
struct D : virtual C {};
int main ()
{
C c;
D d;
A *apc = &c;
B1 *b1pc = &c;
B2 *b2pc = &c;
A *apd = &d;
B1 *b1pd = &d;
B2 *b2pd = &d;
C *cpd = &d;
#if __GXX_ABI_VERSION >= 100
if (static_cast <void *> (apc) != static_cast <void *> (b1pc))
return 1;
if (static_cast <void *> (&c) != static_cast <void *> (b2pc))
return 2;
if (static_cast <void *> (b1pc) == static_cast <void *> (b2pc))
return 3;
if (static_cast <void *> (apd) != static_cast <void *> (b1pd))
return 11;
if (static_cast <void *> (b2pd) != static_cast <void *> (&d))
return 12;
if (static_cast <void *> (b2pd) != static_cast <void *> (cpd))
return 13;
if (static_cast <void *> (b1pd) == static_cast <void *> (b2pd))
return 14;
#endif
return 0;
}