diff options
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.abi/primary4.C')
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.abi/primary4.C | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.abi/primary4.C b/gcc/testsuite/g++.old-deja/g++.abi/primary4.C new file mode 100644 index 000000000..3e36c58a3 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.abi/primary4.C @@ -0,0 +1,28 @@ +// { 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 {}; + +struct D : virtual B1, B2, C {}; + +int main () +{ + D d; + A *ap = &d; + C *cp = &d; + +#if __GXX_ABI_VERSION >= 100 + if (static_cast <void *> (ap) != static_cast <void *> (cp)) + return 1; +#endif + + return 0; +} |