parser.c (cp_lexer_set_source_position): New.
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. From-SVN: r208378
This commit is contained in:
parent
f3ba16d058
commit
d9d8f6b1e6
2 changed files with 26 additions and 14 deletions
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Add table
Reference in a new issue