aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/template/scope2.C
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/g++.dg/template/scope2.C')
-rw-r--r--gcc/testsuite/g++.dg/template/scope2.C34
1 files changed, 34 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/template/scope2.C b/gcc/testsuite/g++.dg/template/scope2.C
new file mode 100644
index 00000000000..79b520cbeab
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/scope2.C
@@ -0,0 +1,34 @@
+// { dg-do compile }
+
+// Copyright (C) 2003 Free Software Foundation, Inc.
+// Contributed by Nathan Sidwell 15 Aug 2003 <nathan@codesourcery.com>
+
+// checked instantiated bases in wrong scope.
+
+class Helper {};
+
+template<class T> struct X { };
+
+template<class T> class Base
+{
+ protected:
+ typedef Helper H;
+};
+
+template<class T >
+struct Derived : Base<T>
+{
+ typedef Base<T> Parent;
+ typedef typename Parent::H H;
+
+ class Nested : public X<H> {};
+
+ Nested m;
+
+ void Foo ();
+};
+
+void Foo (Derived<char> &x)
+{
+ x.Foo ();
+}