http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36888
--- Comment #4 from Nathan Froyd <froydnj at gcc dot gnu.org> 2010-11-20 18:50:06 UTC --- Author: froydnj Date: Sat Nov 20 18:50:00 2010 New Revision: 166977 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=166977 Log: gcc/c-family/ PR c++/16189 PR c++/36888 PR c++/45331 * c-common.h (keyword_begins_type_specifier): Declare. (keyword_is_storage_class_specifier): Declare. (keyword_is_type_qualifier): Declare. * c-common.c (keyword_begins_type_specifier): New function. (keyword_is_storage_class_specifier): New function. (keyword_is_type_qualifier): Declare. gcc/cp/ PR c++/16189 PR c++/36888 PR c++/45331 * parser.c (cp_lexer_set_token_position): New function. (cp_lexer_previous_token_position): New function. (cp_lexer_previous_token): Call it. (cp_parser_class_specifier): Try to gracefully handle a missing semicolon. gcc/testsuite/ PR c++/16189 PR c++/36888 PR c++/45331 * g++.dg/parse/semicolon3.C: New test. * g++.dg/debug/pr22514.C: Adjust. * g++.dg/init/error1.C: Adjust. * g++.dg/other/bitfield3.C: Adjust. * g++.dg/other/semicolon.C: Adjust. * g++.dg/parse/error14.C: Adjust. * g++.dg/parse/error5.C: Adjust. * g++.dg/parse/parameter-declaration-1.C: Adjust. * g++.dg/template/pr23510.C: Adjust. * g++.dg/template/pr39425.C: Adjust. * g++.old-deja/g++.robertl/eb125.C: Adjust. Added: trunk/gcc/testsuite/g++.dg/parse/semicolon3.C Modified: trunk/gcc/c-family/ChangeLog trunk/gcc/c-family/c-common.c trunk/gcc/c-family/c-common.h trunk/gcc/cp/ChangeLog trunk/gcc/cp/parser.c trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/g++.dg/debug/pr22514.C trunk/gcc/testsuite/g++.dg/init/error1.C trunk/gcc/testsuite/g++.dg/other/bitfield3.C trunk/gcc/testsuite/g++.dg/other/semicolon.C trunk/gcc/testsuite/g++.dg/parse/error14.C trunk/gcc/testsuite/g++.dg/parse/error5.C trunk/gcc/testsuite/g++.dg/parse/parameter-declaration-1.C trunk/gcc/testsuite/g++.dg/template/pr23510.C trunk/gcc/testsuite/g++.dg/template/pr39425.C trunk/gcc/testsuite/g++.old-deja/g++.robertl/eb125.C