diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 5500f28125af864f704a7f1e85be264479c01be1..fd9b2d113a55449e2a55da86d6c2b941816f2493 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2003-02-18  Geoffrey Keating  <geoffk@apple.com>
+
+	* gcc.c (validate_switches): Don't scan past closing '}'.
+
 2003-02-18  Ben Elliston  <bje@redhat.com>
 
 	PR c++/1607
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 069c0097d03e8a72b72292d769bb3b8f42041637..61ed974aec3aa2f5169a4a6d56752ff565ed1363 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,9 @@
+2003-02-18  Geoffrey Keating  <geoffk@apple.com>
+
+	* cp-tree.h (rid_to_yy): Delete.
+	(C_RID_YYCODE): Delete.
+	(finish_file): Delete redundant declaration.
+
 2003-02-18  Jason Merrill  <jason@redhat.com>
 
 	PR c++/9623
diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h
index a0c41341901a2912fb80b3a28262d9be1a2401e8..02a724d89f6f32511d2d9fae9272e1719cc0502c 100644
--- a/gcc/cp/cp-tree.h
+++ b/gcc/cp/cp-tree.h
@@ -240,9 +240,6 @@ struct lang_identifier GTY(())
 
 #define C_IS_RESERVED_WORD(ID) TREE_LANG_FLAG_5 (ID)
 
-extern const short rid_to_yy[RID_MAX];
-#define C_RID_YYCODE(ID) rid_to_yy[C_RID_CODE (ID)]
-
 #define LANG_IDENTIFIER_CAST(NODE) \
 	((struct lang_identifier*)IDENTIFIER_NODE_CHECK (NODE))
 
@@ -3886,7 +3883,6 @@ extern tree build_cleanup			(tree);
 extern void finish_file				(void);
 extern tree build_expr_from_tree		(tree);
 extern tree build_cleanup			(tree);
-extern void finish_file				(void);
 extern tree build_expr_from_tree		(tree);
 extern tree build_offset_ref_call_from_tree     (tree, tree);
 extern tree build_call_from_tree                (tree, tree, bool);
diff --git a/gcc/gcc.c b/gcc/gcc.c
index b7aac2db625a1ea03b99b9d5c7e90048aa1e6d5c..52ca42420213b626722d547d9e226b2dd1107328 100644
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -6871,7 +6871,8 @@ next_member:
 	      else if (p[0] == 'W' && p[1] == '{')
 		p = validate_switches (p+2);
 	    }
-	  if (*p) p++;
+	  else
+	    p++;
 	}
 
       if (*p) p++;