From d487ebe83e58c90eebd6954a115ffbcc15e801d7 Mon Sep 17 00:00:00 2001
From: reichelt <reichelt@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Sat, 22 Jan 2005 00:12:27 +0000
Subject: [PATCH] 	PR c/18809 	* c-typeck.c (convert_arguments):
 Check for error_mark_node.

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


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@94049 138bc75d-0d04-0410-961f-82ee72b054a4
---
 gcc/ChangeLog                    | 5 +++++
 gcc/c-typeck.c                   | 2 +-
 gcc/testsuite/ChangeLog          | 5 +++++
 gcc/testsuite/gcc.dg/pr18809-1.c | 7 +++++++
 4 files changed, 18 insertions(+), 1 deletion(-)
 create mode 100644 gcc/testsuite/gcc.dg/pr18809-1.c

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b97af9a6f317..239949552c56 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/c-typeck.c b/gcc/c-typeck.c
index a4e4bc9df26e..237afadedf49 100644
--- a/gcc/c-typeck.c
+++ b/gcc/c-typeck.c
@@ -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;
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 3d569207d849..f764fdde3296 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -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
index 000000000000..f20f00433fe6
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr18809-1.c
@@ -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" } */
-- 
GitLab