diff options
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.pt/enum14.C')
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.pt/enum14.C | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.pt/enum14.C b/gcc/testsuite/g++.old-deja/g++.pt/enum14.C new file mode 100644 index 000000000..2405cc8f8 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.pt/enum14.C @@ -0,0 +1,36 @@ +// { dg-do assemble } +// Copyright (C) 2000 Free Software Foundation, Inc. +// Contributed by Nathan Sidwell 4 Oct 2000 <nathan@codesourcery.com> +// Origin: bug 511 malte.starostik@t-online.de + +// Bug 511. We failed to set access correctly for enumeration members of +// template classes + +template <class> +class A +{ + public: + enum foo {bar}; + typedef int baz; +}; + +struct C: public A<int> +{ + void choke (foo); + void choke (baz); +}; + +template <class> +struct B +{ + private: + enum foo {bar}; // { dg-error "" } private + typedef int baz; // { dg-error "" } private +}; + +struct D: public B<int> +{ + void choke (foo); // { dg-error "" } within this context + void choke (baz); // { dg-error "" } within this context +}; + |