re PR c++/60628 ([c++11] ICE initializing array of auto)
PR c++/60628 * decl.c (create_array_type_for_decl): Only check for auto once. From-SVN: r212504
This commit is contained in:
parent
5806f7716c
commit
7ce5ae457b
@ -1,5 +1,8 @@
|
|||||||
2014-07-13 Jason Merrill <jason@redhat.com>
|
2014-07-13 Jason Merrill <jason@redhat.com>
|
||||||
|
|
||||||
|
PR c++/60628
|
||||||
|
* decl.c (create_array_type_for_decl): Only check for auto once.
|
||||||
|
|
||||||
PR c++/58636
|
PR c++/58636
|
||||||
* call.c (build_list_conv): Don't try to build a list of references.
|
* call.c (build_list_conv): Don't try to build a list of references.
|
||||||
|
|
||||||
|
@ -8540,9 +8540,11 @@ create_array_type_for_decl (tree name, tree type, tree size)
|
|||||||
|
|
||||||
/* 8.3.4/1: If the type of the identifier of D contains the auto
|
/* 8.3.4/1: If the type of the identifier of D contains the auto
|
||||||
type-specifier, the program is ill-formed. */
|
type-specifier, the program is ill-formed. */
|
||||||
if (pedantic && type_uses_auto (type))
|
if (type_uses_auto (type))
|
||||||
pedwarn (input_location, OPT_Wpedantic,
|
{
|
||||||
"declaration of %qD as array of %<auto%>", name);
|
error ("%qD declared as array of %qT", name, type);
|
||||||
|
return error_mark_node;
|
||||||
|
}
|
||||||
|
|
||||||
/* If there are some types which cannot be array elements,
|
/* If there are some types which cannot be array elements,
|
||||||
issue an error-message and return. */
|
issue an error-message and return. */
|
||||||
@ -8601,14 +8603,6 @@ create_array_type_for_decl (tree name, tree type, tree size)
|
|||||||
&& (flag_iso || warn_vla > 0))
|
&& (flag_iso || warn_vla > 0))
|
||||||
pedwarn (input_location, OPT_Wvla, "array of array of runtime bound");
|
pedwarn (input_location, OPT_Wvla, "array of array of runtime bound");
|
||||||
|
|
||||||
/* 8.3.4p1: ...if the type of the identifier of D contains the auto
|
|
||||||
type-specifier, the program is ill-formed. */
|
|
||||||
if (type_uses_auto (type))
|
|
||||||
{
|
|
||||||
error ("%qD declared as array of %qT", name, type);
|
|
||||||
return error_mark_node;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Figure out the index type for the array. */
|
/* Figure out the index type for the array. */
|
||||||
if (size)
|
if (size)
|
||||||
itype = compute_array_index_type (name, size, tf_warning_or_error);
|
itype = compute_array_index_type (name, size, tf_warning_or_error);
|
||||||
|
Loading…
Reference in New Issue
Block a user