OSDN Git Service

PR c++/29291
authorreichelt <reichelt@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 3 Oct 2006 10:08:22 +0000 (10:08 +0000)
committerreichelt <reichelt@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 3 Oct 2006 10:08:22 +0000 (10:08 +0000)
* init.c (build_new): Check for invalid init.

* g++.dg/parse/new4.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117393 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/cp/ChangeLog
gcc/cp/init.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/parse/new4.C [new file with mode: 0644]

index 3c2ff36..f82e4f5 100644 (file)
@@ -1,3 +1,8 @@
+2006-10-03  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
+
+       PR c++/29291
+       * init.c (build_new): Check for invalid init.
+
 2006-10-02  Mark Mitchell  <mark@codesourcery.com>
 
        PR c++/29226
index 8faa03d..0c85c0f 100644 (file)
@@ -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;
index 0c1d116..1e7bf01 100644 (file)
@@ -1,3 +1,8 @@
+2006-10-03  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
+
+       PR c++/29291
+       * g++.dg/parse/new4.C: New test.
+
 2006-10-03  Uros Bizjak  <uros@kss-loka.si>
 
        * 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 (file)
index 0000000..34bd232
--- /dev/null
@@ -0,0 +1,7 @@
+// PR c++/29291
+// { dg-do compile }
+
+template<int> void foo()
+{
+  new int(;  // { dg-error "before" }
+}