From d9d8f6b1e604c6c73bd5f3b091fb23453b5b4035 Mon Sep 17 00:00:00 2001 From: Paolo Carlini Date: Thu, 6 Mar 2014 09:40:06 +0000 Subject: [PATCH] parser.c (cp_lexer_set_source_position): New. 2014-03-06 Paolo Carlini * parser.c (cp_lexer_set_source_position): New. (cp_parser_mem_initializer): Use it. (cp_parser_postfix_open_square_expression): Likewise. (cp_parser_parenthesized_expression_list): Likewise. (cp_parser_new_initializer): Likewise. (cp_parser_jump_statement): Likewise. (cp_parser_initializer): Likewise. (cp_parser_functional_cast): Likewise. From-SVN: r208378 --- gcc/cp/ChangeLog | 11 +++++++++++ gcc/cp/parser.c | 29 +++++++++++++++-------------- 2 files changed, 26 insertions(+), 14 deletions(-) diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index a0b87bf..70db35c 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,14 @@ +2014-03-06 Paolo Carlini + + * parser.c (cp_lexer_set_source_position): New. + (cp_parser_mem_initializer): Use it. + (cp_parser_postfix_open_square_expression): Likewise. + (cp_parser_parenthesized_expression_list): Likewise. + (cp_parser_new_initializer): Likewise. + (cp_parser_jump_statement): Likewise. + (cp_parser_initializer): Likewise. + (cp_parser_functional_cast): Likewise. + 2014-03-05 Jason Merrill PR c++/60409 diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c index b56870d..8bc1126 100644 --- a/gcc/cp/parser.c +++ b/gcc/cp/parser.c @@ -844,6 +844,14 @@ cp_lexer_set_source_position_from_token (cp_token *token) } } +/* Update the globals input_location and the input file stack from LEXER. */ +static inline void +cp_lexer_set_source_position (cp_lexer *lexer) +{ + cp_token *token = cp_lexer_peek_token (lexer); + cp_lexer_set_source_position_from_token (token); +} + /* Return a pointer to the next token in the token stream, but do not consume it. */ @@ -6359,8 +6367,7 @@ cp_parser_postfix_open_square_expression (cp_parser *parser, if (cp_lexer_next_token_is (parser->lexer, CPP_OPEN_BRACE)) { bool expr_nonconst_p; - cp_token *token = cp_lexer_peek_token (parser->lexer); - cp_lexer_set_source_position_from_token (token); + cp_lexer_set_source_position (parser->lexer); maybe_warn_cpp0x (CPP0X_INITIALIZER_LISTS); index = cp_parser_braced_list (parser, &expr_nonconst_p); if (flag_cilkplus @@ -6673,8 +6680,7 @@ cp_parser_parenthesized_expression_list (cp_parser* parser, if (cp_lexer_next_token_is (parser->lexer, CPP_OPEN_BRACE)) { /* A braced-init-list. */ - cp_token *token = cp_lexer_peek_token (parser->lexer); - cp_lexer_set_source_position_from_token (token); + cp_lexer_set_source_position (parser->lexer); maybe_warn_cpp0x (CPP0X_INITIALIZER_LISTS); expr = cp_parser_braced_list (parser, &expr_non_constant_p); if (non_constant_p && expr_non_constant_p) @@ -7523,8 +7529,7 @@ cp_parser_new_initializer (cp_parser* parser) { tree t; bool expr_non_constant_p; - cp_token *token = cp_lexer_peek_token (parser->lexer); - cp_lexer_set_source_position_from_token (token); + cp_lexer_set_source_position (parser->lexer); maybe_warn_cpp0x (CPP0X_INITIALIZER_LISTS); t = cp_parser_braced_list (parser, &expr_non_constant_p); CONSTRUCTOR_IS_DIRECT_INIT (t) = 1; @@ -10681,8 +10686,7 @@ cp_parser_jump_statement (cp_parser* parser) if (cp_lexer_next_token_is (parser->lexer, CPP_OPEN_BRACE)) { - cp_token *token = cp_lexer_peek_token (parser->lexer); - cp_lexer_set_source_position_from_token (token); + cp_lexer_set_source_position (parser->lexer); maybe_warn_cpp0x (CPP0X_INITIALIZER_LISTS); expr = cp_parser_braced_list (parser, &expr_non_constant_p); } @@ -12361,8 +12365,7 @@ cp_parser_mem_initializer (cp_parser* parser) if (cp_lexer_next_token_is (parser->lexer, CPP_OPEN_BRACE)) { bool expr_non_constant_p; - cp_token *token = cp_lexer_peek_token (parser->lexer); - cp_lexer_set_source_position_from_token (token); + cp_lexer_set_source_position (parser->lexer); maybe_warn_cpp0x (CPP0X_INITIALIZER_LISTS); expression_list = cp_parser_braced_list (parser, &expr_non_constant_p); CONSTRUCTOR_IS_DIRECT_INIT (expression_list) = 1; @@ -18816,8 +18819,7 @@ cp_parser_initializer (cp_parser* parser, bool* is_direct_init, } else if (token->type == CPP_OPEN_BRACE) { - cp_token *token = cp_lexer_peek_token (parser->lexer); - cp_lexer_set_source_position_from_token (token); + cp_lexer_set_source_position (parser->lexer); maybe_warn_cpp0x (CPP0X_INITIALIZER_LISTS); init = cp_parser_braced_list (parser, non_constant_p); CONSTRUCTOR_IS_DIRECT_INIT (init) = 1; @@ -23253,8 +23255,7 @@ cp_parser_functional_cast (cp_parser* parser, tree type) if (cp_lexer_next_token_is (parser->lexer, CPP_OPEN_BRACE)) { - cp_token *token = cp_lexer_peek_token (parser->lexer); - cp_lexer_set_source_position_from_token (token); + cp_lexer_set_source_position (parser->lexer); maybe_warn_cpp0x (CPP0X_INITIALIZER_LISTS); expression_list = cp_parser_braced_list (parser, &nonconst_p); CONSTRUCTOR_IS_DIRECT_INIT (expression_list) = 1; -- 2.7.4