summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>2014-03-06 09:40:06 +0000
committerpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>2014-03-06 09:40:06 +0000
commit7ae216c980f001de4aacab6927f9ea4a22556eda (patch)
tree5fcc360ae8bcb23e6d2dc1db58baede17b590377
parent958d76870bf53bc866d431b5e3f5641999a348f7 (diff)
downloadgcc-7ae216c980f001de4aacab6927f9ea4a22556eda.tar.gz
2014-03-06 Paolo Carlini <paolo.carlini@oracle.com>
* 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@208378 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/cp/ChangeLog11
-rw-r--r--gcc/cp/parser.c29
2 files changed, 26 insertions, 14 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index a0b87bf91af..70db35c1de9 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,14 @@
+2014-03-06 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * 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 <jason@redhat.com>
PR c++/60409
diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c
index b56870d6225..8bc1126e238 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;