From: Mark Shinwell Date: Wed, 18 Oct 2006 10:57:18 +0000 (+0000) Subject: re PR c++/26884 (Misleading diagnostic for invalid array initializer) X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=8e76c2bf138ad82a0b66a75a12e9529ced0930d8;p=gcc.git re PR c++/26884 (Misleading diagnostic for invalid array initializer) PR c++/26884 * typeck2.c (digest_init): Raise error upon attempts to initialize arrays with variables. From-SVN: r117854 --- diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 2358e9bf818..356bc25d451 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2006-10-18 Mark Shinwell + + PR c++/26884 + * typeck2.c (digest_init): Raise error upon attempts to + initialize arrays with variables. + 2006-10-17 Lee Millward PR c++/27952 diff --git a/gcc/cp/typeck2.c b/gcc/cp/typeck2.c index 12987cfab1e..a3654c00047 100644 --- a/gcc/cp/typeck2.c +++ b/gcc/cp/typeck2.c @@ -733,6 +733,15 @@ digest_init (tree type, tree init) return error_mark_node; } + + if (TREE_CODE (type) == ARRAY_TYPE + && TREE_CODE (init) != CONSTRUCTOR) + { + error ("array must be initialized with a brace-enclosed" + " initializer"); + return error_mark_node; + } + return convert_for_initialization (NULL_TREE, type, init, LOOKUP_NORMAL | LOOKUP_ONLYCONVERTING, "initialization", NULL_TREE, 0);