re PR c/18809 (ICE after a couple of errors with a simple invalid C code)
authorVolker Reichelt <reichelt@igpm.rwth-aachen.de>
Sat, 22 Jan 2005 00:12:27 +0000 (00:12 +0000)
committerVolker Reichelt <reichelt@gcc.gnu.org>
Sat, 22 Jan 2005 00:12:27 +0000 (00:12 +0000)
PR c/18809
* c-typeck.c (convert_arguments): Check for error_mark_node.

* gcc.dg/pr18809-1.c: New test.

From-SVN: r94049

gcc/ChangeLog
gcc/c-typeck.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/pr18809-1.c [new file with mode: 0644]

index b97af9a6f31740acc55156767e1d39e9f2f73b79..239949552c56c1a7ba39af05a7b7c6b481d415a2 100644 (file)
@@ -1,3 +1,8 @@
+2005-01-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
+
+       PR c/18809
+       * c-typeck.c (convert_arguments): Check for error_mark_node.
+
 2005-01-20  Ian Lance Taylor  <ian@airs.com>
 
        PR tree-optimization/13000
index a4e4bc9df26efb1c08e7f3b8f7d8902d4dc2d6c9..237afadedf49559c95212d34dad11fc94ef42d00 100644 (file)
@@ -2067,7 +2067,7 @@ convert_arguments (tree typelist, tree values, tree function, tree fundecl)
          /* Formal parm type is specified by a function prototype.  */
          tree parmval;
 
-         if (!COMPLETE_TYPE_P (type))
+         if (type == error_mark_node || !COMPLETE_TYPE_P (type))
            {
              error ("type of formal parameter %d is incomplete", parmnum + 1);
              parmval = val;
index 3d569207d8499d6b17623340907961dbced25429..f764fdde3296f5ec11792a9c016552e0559b054b 100644 (file)
@@ -1,3 +1,8 @@
+2005-01-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
+
+       PR c/18809
+       * gcc.dg/pr18809-1.c: New test.
+
 2005-01-21  Ian Lance Taylor  <ian@airs.com>
 
        * gcc.dg/20050121-1.c: New test.
diff --git a/gcc/testsuite/gcc.dg/pr18809-1.c b/gcc/testsuite/gcc.dg/pr18809-1.c
new file mode 100644 (file)
index 0000000..f20f004
--- /dev/null
@@ -0,0 +1,7 @@
+/* PR c/18809 */
+/* Origin: Andrew Pinski <pinskia@gcc.gnu.org> */
+
+/* { dg-do compile } */
+
+void foo(enum E e) {}   /* { dg-error "" } */
+void bar() { foo(0); }  /* { dg-error "formal" } */