[PR c++/84729] reject parenthesized array init
commit252d26e609f92e97138eb3f7b712686ca12dfc3a
authoraoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 23 Mar 2018 01:19:01 +0000 (23 01:19 +0000)
committeraoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 23 Mar 2018 01:19:01 +0000 (23 01:19 +0000)
tree5507925d2db5beeb704eaedf8a5f95a25504d3b0
parent0cf97c34f40466fde26673d2ff8b799a990c8f28
[PR c++/84729] reject parenthesized array init

A parenthesized initializer was only accepted when new()ing an array in
permissive mode.  We were not careful, however, to convert the
TREE_LIST initializer to the array element type in this extension.

Instead of fixing it, converting the initializer to the base type
after turning the TREE_LIST initializer to a compound_expr, we disable
this deprecated extension.

for  gcc/cp/ChangeLog

PR c++/84729
* init.c (build_vec_init): Error at parenthesized array init.

for  gcc/testsuite/ChangeLog

PR c++/84729
* g++.dg/pr84729.C: New.
        * g++.old-deja/g++.ext/arrnew2.C: Require error.
* g++.old-deja/g++.robertl/eb58.C: Likewise.
* g++.old-deja/g++.robertl/eb63.C: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@258791 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/cp/ChangeLog
gcc/cp/init.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/pr84729.C [new file with mode: 0644]
gcc/testsuite/g++.old-deja/g++.ext/arrnew2.C
gcc/testsuite/g++.old-deja/g++.robertl/eb58.C
gcc/testsuite/g++.old-deja/g++.robertl/eb63.C