PRs C++/6803, C++/7721 and C++/7803
* decl.c (grokdeclarator): Gracefully handle template-name as
decl-specifier.
From-SVN: r58058
+2002-10-11 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ PRs C++/6803, C++/7721 and C++/7803
+ * decl.c (grokdeclarator): Gracefully handle template-name as
+ decl-specifier.
+
2002-10-11 Jason Molenda <jmolenda@apple.com>
* init.c (build_field_list): Provide uses_unions_p with a default
case BASELINK:
next = &BASELINK_FUNCTIONS (decl);
break;
+
+ case TEMPLATE_DECL:
+ /* Sometimes, we see a template-name used as part of a
+ decl-specifier like in
+ std::allocator alloc;
+ Handle that gracefully. */
+ error ("invalid use of template-name '%E' in a declarator", decl);
+ return error_mark_node;
+ break;
default:
my_friendly_assert (0, 20020917);
--- /dev/null
+// Contributed by Gabriel Dos Reis <gdr@integrable-solutions.net>
+// Origin: PRs 7721 and 7803
+// { dg-do compile }
+
+namespace N
+{
+ template<typename>
+ struct X { };
+}
+
+N::X X; // { dg-error "" "" }
+
+int main()
+{
+ return sizeof(X); // { dg-error "" "" }
+}