The following invalid code snippet triggers an ICE since GCC 4.0.0: ========================= void *p = new (::X; ========================= bug.cc:1: error: '::X' has not been declared bug.cc:1: error: expected type-specifier before ';' token bug.cc:1: internal compiler error: tree check: expected tree_list, have error_mark in resolve_args, at cp/call.c:2710 Please submit a full bug report, [etc.] Testing a patch.
Subject: Bug number PR c++/28593 A patch for this bug has been added to the patch tracker. The mailing list url for the patch is http://gcc.gnu.org/ml/gcc-patches/2006-08/msg00087.html
Subject: Bug 28593 Author: reichelt Date: Wed Aug 16 21:35:18 2006 New Revision: 116191 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=116191 Log: PR c++/28593 * init.c (build_new): Return early on invalid placement. * g++.dg/parse/new3.C: New test. Added: trunk/gcc/testsuite/g++.dg/parse/new3.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/init.c trunk/gcc/testsuite/ChangeLog
Subject: Bug 28593 Author: reichelt Date: Wed Aug 16 21:41:52 2006 New Revision: 116192 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=116192 Log: PR c++/28593 * init.c (build_new): Return early on invalid placement. * g++.dg/parse/new3.C: New test. Added: branches/gcc-4_1-branch/gcc/testsuite/g++.dg/parse/new3.C Modified: branches/gcc-4_1-branch/gcc/cp/ChangeLog branches/gcc-4_1-branch/gcc/cp/init.c branches/gcc-4_1-branch/gcc/testsuite/ChangeLog
Subject: Bug 28593 Author: reichelt Date: Wed Aug 16 21:46:01 2006 New Revision: 116193 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=116193 Log: PR c++/28593 * init.c (build_new): Return early on invalid placement. * g++.dg/parse/new3.C: New test. Added: branches/gcc-4_0-branch/gcc/testsuite/g++.dg/parse/new3.C Modified: branches/gcc-4_0-branch/gcc/cp/ChangeLog branches/gcc-4_0-branch/gcc/cp/init.c branches/gcc-4_0-branch/gcc/testsuite/ChangeLog
Fixed on mainline, 4.1 branch, and 4.0 branch.