summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/g++.dg/parse/typename6.C17
2 files changed, 22 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 196bce820a0..3136eda9d74 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2004-01-15 Giovanni Bajo <giovannibajo@gcc.gnu.org>
+
+ PR c++/13407
+ * g++.dg/parse/typename6.C: New test.
+
2004-01-15 Geoffrey Keating <geoffk@apple.com>
PR pch/13361
diff --git a/gcc/testsuite/g++.dg/parse/typename6.C b/gcc/testsuite/g++.dg/parse/typename6.C
new file mode 100644
index 00000000000..a0f5e39b6e9
--- /dev/null
+++ b/gcc/testsuite/g++.dg/parse/typename6.C
@@ -0,0 +1,17 @@
+// { dg-do compile }
+// Contributed by Matt Austern <austern at apple dot com>
+// PR c++/13407: Gracefully handle keyword typename in base class specifier.
+
+struct A { };
+struct B { typedef A Type; };
+
+template <typename T>
+struct X :
+ public typename T::Type // { dg-error "not allowed in this context" }
+{ };
+
+X<B> x;
+
+struct C :
+ public typename A // { dg-error "not allowed outside of templates" }
+{ };
OpenPOWER on IntegriCloud