From e44d834f170748e1672c1cb7a039833439e5fe64 Mon Sep 17 00:00:00 2001
From: jsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Mon, 28 Feb 2005 19:22:41 +0000
Subject: [PATCH] 	PR c/20245 	* c-parser.c
 (c_parser_compound_statement): Return error_mark_node 	instead of NULL_TREE
 on error.

testsuite:
	* gcc.dg/pr20245-1.c: New test.


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

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 283128ac703..db53428e1e2 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2005-02-28  Joseph S. Myers  <joseph@codesourcery.com>
+
+	PR c/20245
+	* c-parser.c (c_parser_compound_statement): Return error_mark_node
+	instead of NULL_TREE on error.
+
 2005-02-28  David Edelsohn  <edelsohn@gnu.org>
 
 	* config/rs6000/rs6000.c (EASY_VECTOR_15): Remove.
diff --git a/gcc/c-parser.c b/gcc/c-parser.c
index adebfd20589..de6999a0add 100644
--- a/gcc/c-parser.c
+++ b/gcc/c-parser.c
@@ -3170,7 +3170,7 @@ c_parser_compound_statement (c_parser *parser)
 {
   tree stmt;
   if (!c_parser_require (parser, CPP_OPEN_BRACE, "expected %<{%>"))
-    return NULL_TREE;
+    return error_mark_node;
   stmt = c_begin_compound_stmt (true);
   c_parser_compound_statement_nostart (parser);
   return c_end_compound_stmt (stmt, true);
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 9ed60b0cad4..75fe5325b25 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2005-02-28  Joseph S. Myers  <joseph@codesourcery.com>
+
+	PR c/20245
+	* gcc.dg/pr20245-1.c: New test.
+
 2005-02-28  Jakub Jelinek  <jakub@redhat.com>
 
 	PR middle-end/19874
diff --git a/gcc/testsuite/gcc.dg/pr20245-1.c b/gcc/testsuite/gcc.dg/pr20245-1.c
new file mode 100644
index 00000000000..51089c6e996
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr20245-1.c
@@ -0,0 +1,5 @@
+/* Bug 20245: the parse error should not result in an ICE.  */
+/* { dg-do compile } */
+/* { dg-options "" } */
+
+void foo() x; /* { dg-error "expected" } */
-- 
GitLab