aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGiovanni Bajo <giovannibajo@gcc.gnu.org>2004-01-16 12:33:28 +0000
committerGiovanni Bajo <giovannibajo@gcc.gnu.org>2004-01-16 12:33:28 +0000
commit1303d0344b83abbb12c352a47e3af6562d029a59 (patch)
treefb17a58ef8d20f47d5cde2d0d880e9a01131a774
parent1ed53ef30cdbfafa4d25d57e5f75b5aef84657b0 (diff)
downloadgcc-1303d0344b83abbb12c352a47e3af6562d029a59.zip
gcc-1303d0344b83abbb12c352a47e3af6562d029a59.tar.gz
gcc-1303d0344b83abbb12c352a47e3af6562d029a59.tar.bz2
re PR c++/13407 (Confusing error message from extraneous typename)
PR c++/13407 * g++.dg/parse/typename6.C: New test. From-SVN: r75970
-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 196bce8..3136eda 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 0000000..a0f5e39
--- /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" }
+{ };