re PR c++/48599 ([C++0x] no diagnostic for invalid use of auto with array declarator)

PR c++/48599
	* decl.c (create_array_type_for_decl): Complain about array of auto.

From-SVN: r174257
This commit is contained in:
Jason Merrill 2011-05-25 22:22:54 -04:00 committed by Jason Merrill
parent eda1990699
commit 5df0c0c767
4 changed files with 16 additions and 0 deletions

View File

@ -1,5 +1,8 @@
2011-05-25 Jason Merrill <jason@redhat.com>
PR c++/48599
* decl.c (create_array_type_for_decl): Complain about array of auto.
PR c++/44944
PR c++/49156
* error.c (dump_template_bindings): Set processing_template_decl

View File

@ -7974,6 +7974,12 @@ create_array_type_for_decl (tree name, tree type, tree size)
if (type == error_mark_node || size == error_mark_node)
return error_mark_node;
/* 8.3.4/1: If the type of the identifier of D contains the auto
type-specifier, the program is ill-formed. */
if (pedantic && type_uses_auto (type))
pedwarn (input_location, OPT_pedantic,
"declaration of %qD as array of %<auto%>", name);
/* If there are some types which cannot be array elements,
issue an error-message and return. */
switch (TREE_CODE (type))

View File

@ -1,5 +1,7 @@
2011-05-25 Jason Merrill <jason@redhat.com>
* g++.dg/cpp0x/auto24.C: New.
* g++.dg/cpp0x/error4.C: New.
* g++.dg/cpp0x/rv-restrict.C: New.

View File

@ -0,0 +1,5 @@
// PR c++/48599
// { dg-options "-std=c++0x -pedantic-errors" }
int v[1];
auto (*p)[1] = &v; // { dg-error "array of .auto" }