diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a72f6deaae9a0d6e510b1451147985ef80d7ee5e..da55bbc36eba38c5fe2f819067c3d7996267fb73 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2002-04-16  Paolo Carlini  <pcarlini@unitus.it>
+
+	* c-parse.in (poplevel, compstmt_start,
+	compstmt_primary_start): Add ending ';', in accordance
+	with POSIX.
+
 2002-04-16  Richard Henderson  <rth@redhat.com>
 
 	* config.gcc (sparcv9-solaris): Configure for 64-bit default.
diff --git a/gcc/c-parse.in b/gcc/c-parse.in
index c6d4b4fe0030964f831193d76627db3a3a8c8e23..f415e41e7c24ac29a2853fbf8305ca295e2e85c3 100644
--- a/gcc/c-parse.in
+++ b/gcc/c-parse.in
@@ -2063,6 +2063,7 @@ end ifobjc
 
 poplevel:  /* empty */
                 { $$ = add_scope_stmt (/*begin_p=*/0, /*partial_p=*/0); }
+        ;
 
 /* Start and end blocks created for the new scopes of C99.  */
 c99_block_start: /* empty */
@@ -2133,7 +2134,8 @@ compstmt_or_error:
 	;
 
 compstmt_start: '{' { compstmt_count++;
-                      $$ = c_begin_compound_stmt (); } 
+                      $$ = c_begin_compound_stmt (); }
+        ;
 
 compstmt_nostart: '}'
 		{ $$ = convert (void_type_node, integer_zero_node); }
@@ -2165,6 +2167,7 @@ compstmt_primary_start:
 		  compstmt_count++;
 		  $$ = add_stmt (build_stmt (COMPOUND_STMT, last_tree));
 		}
+        ;
 
 compstmt: compstmt_start compstmt_nostart
 		{ RECHAIN_STMTS ($1, COMPOUND_BODY ($1));