Somewhat unrelated to state mutation, but I needed these changes while debugging the code. This adds more debugging information to cp_debug_parser.
I will be sending these debugging changes for review for trunk. Tested on x86_64. Committed to branch. Diego. * parser.c (cp_debug_parser): Add location information on the about-to-be-parsed token. diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c index 1a0ed89..5b87275 100644 --- a/gcc/cp/parser.c +++ b/gcc/cp/parser.c @@ -466,6 +466,8 @@ void cp_debug_parser (FILE *file, cp_parser *parser) { const size_t window_size = 20; + cp_token *token; + expanded_location eloc; if (file == NULL) file = stderr; @@ -531,6 +533,15 @@ cp_debug_parser (FILE *file, cp_parser *parser) fprintf (file, "Number of template parameter lists for the current " "declaration: %u\n", parser->num_template_parameter_lists); cp_debug_parser_tokens (file, parser, window_size); + token = parser->lexer->next_token; + fprintf (file, "Next token to parse:\n"); + fprintf (file, "\tToken: "); + cp_lexer_print_token (file, token); + eloc = expand_location (token->location); + fprintf (file, "\n\tFile: %s\n", eloc.file); + fprintf (file, "\tLine: %d\n", eloc.line); + fprintf (file, "\tColumn: %d\n", eloc.column); + } -- 1.7.3.1 -- This patch is available for review at http://codereview.appspot.com/5172046