init.c (build_aggr_init): Reject bogus array initializers early.
* init.c (build_aggr_init): Reject bogus array initializers early. From-SVN: r35605
This commit is contained in:
parent
af65739581
commit
aa54df0901
@ -1,3 +1,8 @@
|
||||
2000-08-10 Nathan Sidwell <nathan@codesourcery.com>
|
||||
|
||||
* init.c (build_aggr_init): Reject bogus array initializers
|
||||
early.
|
||||
|
||||
2000-08-09 Nathan Sidwell <nathan@codesourcery.com>
|
||||
|
||||
* rtti.c (build_dynamic_cast_1): Set "C" linkage for new abi
|
||||
|
@ -1186,13 +1186,8 @@ build_aggr_init (exp, init, flags)
|
||||
/* Must arrange to initialize each element of EXP
|
||||
from elements of INIT. */
|
||||
tree itype = init ? TREE_TYPE (init) : NULL_TREE;
|
||||
if (CP_TYPE_QUALS (type) != TYPE_UNQUALIFIED)
|
||||
{
|
||||
TREE_TYPE (exp) = TYPE_MAIN_VARIANT (type);
|
||||
if (init)
|
||||
TREE_TYPE (init) = TYPE_MAIN_VARIANT (itype);
|
||||
}
|
||||
if (init && TREE_TYPE (init) == NULL_TREE)
|
||||
|
||||
if (init && !itype)
|
||||
{
|
||||
/* Handle bad initializers like:
|
||||
class COMPLEX {
|
||||
@ -1206,9 +1201,15 @@ build_aggr_init (exp, init, flags)
|
||||
COMPLEX zees(1.0, 0.0)[10];
|
||||
}
|
||||
*/
|
||||
error ("bad array initializer");
|
||||
cp_error ("bad array initializer");
|
||||
return error_mark_node;
|
||||
}
|
||||
if (CP_TYPE_QUALS (type) != TYPE_UNQUALIFIED)
|
||||
{
|
||||
TREE_TYPE (exp) = TYPE_MAIN_VARIANT (type);
|
||||
if (init)
|
||||
TREE_TYPE (init) = TYPE_MAIN_VARIANT (itype);
|
||||
}
|
||||
stmt_expr = build_vec_init (exp, exp, array_type_nelts (type), init,
|
||||
init && same_type_p (TREE_TYPE (init),
|
||||
TREE_TYPE (exp)));
|
||||
|
Loading…
Reference in New Issue
Block a user