aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVolker Reichelt <reichelt@igpm.rwth-aachen.de>2006-12-01 21:28:35 +0000
committerVolker Reichelt <reichelt@gcc.gnu.org>2006-12-01 21:28:35 +0000
commitd8e1d61976e33667ed0d9f8ae6f9619076ecad8a (patch)
tree18525e5c1cc1ec6e5c44fa46a35ae45b101eb0c1
parent07b3bbf2007bb9fab8b6c08321abf9c2cc7a2443 (diff)
downloadgcc-d8e1d61976e33667ed0d9f8ae6f9619076ecad8a.zip
gcc-d8e1d61976e33667ed0d9f8ae6f9619076ecad8a.tar.gz
gcc-d8e1d61976e33667ed0d9f8ae6f9619076ecad8a.tar.bz2
re PR c++/30021 (ICE on invalid parameter for main)
PR c++/30021 * c-common.c (check_main_parameter_types): Check for error_mark_node. * g++.dg/other/main1.C: New test. From-SVN: r119415
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/c-common.c2
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/g++.dg/other/main1.C4
4 files changed, 15 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 34ac82f..d94686b3 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2006-12-01 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+
+ PR c++/30021
+ * c-common.c (check_main_parameter_types): Check for error_mark_node.
+
2006-12-01 Andrew MacLeod <amacleod@redhat.com>
* common.opt (ftree-combine-temps): Remove.
diff --git a/gcc/c-common.c b/gcc/c-common.c
index d7e98de..d2c39bd 100644
--- a/gcc/c-common.c
+++ b/gcc/c-common.c
@@ -1034,7 +1034,7 @@ check_main_parameter_types (tree decl)
{
tree type = args ? TREE_VALUE (args) : 0;
- if (type == void_type_node)
+ if (type == void_type_node || type == error_mark_node )
break;
++argct;
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index fe29e86..31f6ea6 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2006-12-01 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+
+ PR c++/30021
+ * g++.dg/other/main1.C: New test.
+
2006-12-01 Thomas Koenig <Thomas.Koenig@online.de>
PR libfortran/29568
diff --git a/gcc/testsuite/g++.dg/other/main1.C b/gcc/testsuite/g++.dg/other/main1.C
new file mode 100644
index 0000000..ba94574
--- /dev/null
+++ b/gcc/testsuite/g++.dg/other/main1.C
@@ -0,0 +1,4 @@
+// PR c++/30021
+// { dg-do compile }
+
+int main(void,char**); // { dg-error "incomplete type|invalid use" }