From: Volker Reichelt Date: Tue, 3 Oct 2006 10:08:22 +0000 (+0000) Subject: re PR c++/29291 (ICE on invalid use of new) X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=95fb85c625c7f820207784f4c5f2c30c3796778d;p=gcc.git re PR c++/29291 (ICE on invalid use of new) PR c++/29291 * init.c (build_new): Check for invalid init. * g++.dg/parse/new4.C: New test. From-SVN: r117393 --- diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 3c2ff365f9d..f82e4f559dd 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2006-10-03 Volker Reichelt + + PR c++/29291 + * init.c (build_new): Check for invalid init. + 2006-10-02 Mark Mitchell PR c++/29226 diff --git a/gcc/cp/init.c b/gcc/cp/init.c index 8faa03d393e..0c85c0fe8fd 100644 --- a/gcc/cp/init.c +++ b/gcc/cp/init.c @@ -2075,7 +2075,8 @@ build_new (tree placement, tree type, tree nelts, tree init, tree orig_nelts; tree orig_init; - if (placement == error_mark_node || type == error_mark_node) + if (placement == error_mark_node || type == error_mark_node + || init == error_mark_node) return error_mark_node; orig_placement = placement; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 0c1d116590e..1e7bf0101f6 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2006-10-03 Volker Reichelt + + PR c++/29291 + * g++.dg/parse/new4.C: New test. + 2006-10-03 Uros Bizjak * gcc-dg/pthread-init-common.h: Define _GNU_SOURCE. Add tests for diff --git a/gcc/testsuite/g++.dg/parse/new4.C b/gcc/testsuite/g++.dg/parse/new4.C new file mode 100644 index 00000000000..34bd2323019 --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/new4.C @@ -0,0 +1,7 @@ +// PR c++/29291 +// { dg-do compile } + +template void foo() +{ + new int(; // { dg-error "before" } +}