]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR c++/30021 (ICE on invalid parameter for main)
authorVolker Reichelt <reichelt@igpm.rwth-aachen.de>
Fri, 1 Dec 2006 21:28:35 +0000 (21:28 +0000)
committerVolker Reichelt <reichelt@gcc.gnu.org>
Fri, 1 Dec 2006 21:28:35 +0000 (21:28 +0000)
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

gcc/ChangeLog
gcc/c-common.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/other/main1.C [new file with mode: 0644]

index 34ac82f96a6974b3f62fe0b1724ecaffbb2d2059..d94686b3330447374dfa3a2221e08bd69b0bfbf3 100644 (file)
@@ -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.
index d7e98deeb2f65c7567514916eddc2b22e74cdde3..d2c39bd10778a5025af98735cd133e6adfa02221 100644 (file)
@@ -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;
index fe29e8615eb677cdeaaf7c15fa12d8d03193e7d6..31f6ea6d6a68619cec302d9d31cae7629b11f7a5 100644 (file)
@@ -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 (file)
index 0000000..ba94574
--- /dev/null
@@ -0,0 +1,4 @@
+// PR c++/30021
+// { dg-do compile }
+
+int main(void,char**);  // { dg-error "incomplete type|invalid use" }