mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-05 13:41:18 +08:00
decl.c (check_initializer): Try to complete the type of an array element before checking whether it's complete.
* decl.c (check_initializer): Try to complete the type of an array element before checking whether it's complete. Don't complain about arrays with complete element types but an unknown size. (cp_finish_decl): Build the hierarchical constructor before calling maybe_deduce_size_from_array_init. From-SVN: r47008
This commit is contained in:
parent
b1bba9c0cb
commit
fe5b6c1c50
@ -1,3 +1,12 @@
|
||||
2001-11-14 Richard Sandiford <rsandifo@redhat.com>
|
||||
|
||||
* decl.c (check_initializer): Try to complete the type of an
|
||||
array element before checking whether it's complete. Don't
|
||||
complain about arrays with complete element types but an
|
||||
unknown size.
|
||||
(cp_finish_decl): Build the hierarchical constructor before
|
||||
calling maybe_deduce_size_from_array_init.
|
||||
|
||||
2001-11-14 Joseph S. Myers <jsm28@cam.ac.uk>
|
||||
|
||||
* Make-lang.in: Change all uses of $(manext) to $(man1ext).
|
||||
|
@ -7709,12 +7709,12 @@ check_initializer (decl, init)
|
||||
init = NULL_TREE;
|
||||
}
|
||||
else if (TREE_CODE (type) == ARRAY_TYPE
|
||||
&& !COMPLETE_TYPE_P (TREE_TYPE (type)))
|
||||
&& !COMPLETE_TYPE_P (complete_type (TREE_TYPE (type))))
|
||||
{
|
||||
cp_error ("elements of array `%#D' have incomplete type", decl);
|
||||
init = NULL_TREE;
|
||||
}
|
||||
else if (!COMPLETE_TYPE_P (type))
|
||||
else if (TREE_CODE (type) != ARRAY_TYPE && !COMPLETE_TYPE_P (type))
|
||||
{
|
||||
cp_error ("`%D' has incomplete type", decl);
|
||||
TREE_TYPE (decl) = error_mark_node;
|
||||
@ -8154,8 +8154,8 @@ cp_finish_decl (decl, init, asmspec_tree, flags)
|
||||
}
|
||||
|
||||
/* Deduce size of array from initialization, if not already known. */
|
||||
maybe_deduce_size_from_array_init (decl, init);
|
||||
init = check_initializer (decl, init);
|
||||
maybe_deduce_size_from_array_init (decl, init);
|
||||
|
||||
GNU_xref_decl (current_function_decl, decl);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user