diff options
author | Nathan Sidwell <nathan@codesourcery.com> | 2000-06-26 13:18:05 +0000 |
---|---|---|
committer | Nathan Sidwell <nathan@gcc.gnu.org> | 2000-06-26 13:18:05 +0000 |
commit | ed18e47e1835ca66b3c1bf339e825235ff046aa0 (patch) | |
tree | 48f4f030d88b1e0143d555da750ac6c1f6f0dcb6 /gcc | |
parent | 0e997e7650169dbab7a431ab4191a024557e734d (diff) | |
download | gcc-ed18e47e1835ca66b3c1bf339e825235ff046aa0.zip gcc-ed18e47e1835ca66b3c1bf339e825235ff046aa0.tar.gz gcc-ed18e47e1835ca66b3c1bf339e825235ff046aa0.tar.bz2 |
* g++.old-deja/g++.other/ambig3.C: New test.
From-SVN: r34710
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.other/ambig3.C | 34 |
2 files changed, 38 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 24233c1..af4927b 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,9 @@ 2000-06-26 Nathan Sidwell <nathan@codesourcery.com> + * g++.old-deja/g++.other/ambig3.C: New test. + +2000-06-26 Nathan Sidwell <nathan@codesourcery.com> + * g++.old-deja/g++.pt/syntax1.C: New test. * g++.old-deja/g++.pt/syntax2.C: New test. * g++.old-deja/g++.other/syntax3.C: New test. diff --git a/gcc/testsuite/g++.old-deja/g++.other/ambig3.C b/gcc/testsuite/g++.old-deja/g++.other/ambig3.C new file mode 100644 index 0000000..ebdd1eb --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.other/ambig3.C @@ -0,0 +1,34 @@ +// Build don't link: + +// Copyright (C) 2000 Free Software Foundation, Inc. +// Contributed by Nathan Sidwell 23 June 2000 <nathan@codesourcery.com> + +// Origin GNATS bug report 69 from Glenn Ammons <ammons@cs.wisc.edu> +// +// A base which derives a virtual base hides declarations in the virtual base, +// even if that virtual base is accessible via another path [10.2]/6. Make +// sure that non-virtual bases of the virtual base are also hidden, not matter +// what order bases are declared in. + +struct A {int a;}; +struct B : A {}; + +struct L1 : virtual B { int a; }; +struct L2 : virtual A { int a; }; + +struct R1 : virtual B {}; +struct R2 : virtual A {}; + +struct C1 : R1, L1 {}; +struct C2 : R2, L2 {}; + +struct D1 : L1, R1 {}; +struct D2 : L2, R2 {}; + +void fn (C1 *c1, D1 *d1, C2 *c2, D2 *d2) +{ + c1->a = 1; + d1->a = 1; + c2->a = 1; + d2->a = 1; +} |