diff options
author | Nathan Sidwell <nathan@codesourcery.com> | 2001-06-08 14:30:47 +0000 |
---|---|---|
committer | Nathan Sidwell <nathan@gcc.gnu.org> | 2001-06-08 14:30:47 +0000 |
commit | 4b454fccf5dce834e4d2d31fc1d0e0be99dee267 (patch) | |
tree | f6a4383a53d3da58655f33978405fda02f636fb9 /gcc | |
parent | 06d5e6330fb628e337fd0485bb5d377a3c4f3d1c (diff) | |
download | gcc-4b454fccf5dce834e4d2d31fc1d0e0be99dee267.zip gcc-4b454fccf5dce834e4d2d31fc1d0e0be99dee267.tar.gz gcc-4b454fccf5dce834e4d2d31fc1d0e0be99dee267.tar.bz2 |
vbase2.C: New test.
* g++.old-deja/g++.abi/vbase2.C: New test.
* g++.old-deja/g++.abi/vbase3.C: New test.
From-SVN: r43016
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.abi/vbase2.C | 27 | ||||
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.abi/vbase3.C | 26 |
3 files changed, 58 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 1c83b60..134d10f 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,10 @@ 2001-06-08 Nathan Sidwell <nathan@codesourcery.com> + * g++.old-deja/g++.abi/vbase2.C: New test. + * g++.old-deja/g++.abi/vbase3.C: New test. + +2001-06-08 Nathan Sidwell <nathan@codesourcery.com> + * g++.old-deja/g++.pt/friend49.C: New test. 2001-06-07 Nathan Sidwell <nathan@codesourcery.com> diff --git a/gcc/testsuite/g++.old-deja/g++.abi/vbase2.C b/gcc/testsuite/g++.old-deja/g++.abi/vbase2.C new file mode 100644 index 0000000..f8877eb --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.abi/vbase2.C @@ -0,0 +1,27 @@ +// Copyright (C) 2001 Free Software Foundation, Inc. +// Contributed by Nathan Sidwell 5 Jun 2001 <nathan@codesourcery.com> + +// Bug 3006. Constructor vtables were wrong. + +struct A +{ + virtual ~A() {} +}; + +class B : public virtual A {}; +class C : public virtual B {}; +class D1 : public virtual C {}; +class D2 : public virtual C {}; +class E + : public virtual D1, + public virtual D2 +{ +}; + + +int +main(int argc, char* argv[]) +{ + new E; + return 0; +} diff --git a/gcc/testsuite/g++.old-deja/g++.abi/vbase3.C b/gcc/testsuite/g++.old-deja/g++.abi/vbase3.C new file mode 100644 index 0000000..9b0ed1c --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.abi/vbase3.C @@ -0,0 +1,26 @@ +// Copyright (C) 2001 Free Software Foundation, Inc. +// Contributed by Nathan Sidwell 5 Jun 2001 <nathan@codesourcery.com> + +// Bug 3061. Constructor vtables were wrong. + +class A_base { + public: + virtual void foo() { } +}; +class A_skel : virtual public A_base { }; + +class B_base : virtual public A_base { }; +class B_skel : virtual public B_base, virtual public A_skel { }; + +class C_base : virtual public B_base { }; +class C_skel : virtual public C_base, virtual public B_skel { }; + +class D_base : virtual public C_base { }; +class D_skel : virtual public D_base, virtual public C_skel { }; + +class D_impl : virtual public D_skel { }; + +int main() +{ + D_impl i; +} |