diff options
author | Jason Merrill <jason@redhat.com> | 2018-11-12 23:33:57 -0500 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2018-11-12 23:33:57 -0500 |
commit | 16e723e600a62428b8ed6ab414931ec7a78aceee (patch) | |
tree | 7e0cf797774e91ae6a17d137439115ace9acb318 /gcc/cp/parser.c | |
parent | e4bd6d5e1f4496e06ac2d08effa977b191b91a54 (diff) | |
download | gcc-16e723e600a62428b8ed6ab414931ec7a78aceee.zip gcc-16e723e600a62428b8ed6ab414931ec7a78aceee.tar.gz gcc-16e723e600a62428b8ed6ab414931ec7a78aceee.tar.bz2 |
cp-tree.h (struct cp_evaluated): New.
* cp-tree.h (struct cp_evaluated): New.
This patch simplifies the saving/clearing/restoring of
cp_unevaluated_operand and c_inhibit_evaluation_warnings in the presence of
mid-block returns.
* init.c (get_nsdmi): Use it.
* parser.c (cp_parser_enclosed_template_argument_list): Use it.
* pt.c (coerce_template_parms, tsubst_aggr_type): Use it.
From-SVN: r266051
Diffstat (limited to 'gcc/cp/parser.c')
-rw-r--r-- | gcc/cp/parser.c | 9 |
1 files changed, 1 insertions, 8 deletions
diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c index 1766ef4..465ab8f 100644 --- a/gcc/cp/parser.c +++ b/gcc/cp/parser.c @@ -27861,8 +27861,6 @@ cp_parser_enclosed_template_argument_list (cp_parser* parser) tree saved_qualifying_scope; tree saved_object_scope; bool saved_greater_than_is_operator_p; - int saved_unevaluated_operand; - int saved_inhibit_evaluation_warnings; /* [temp.names] @@ -27879,10 +27877,7 @@ cp_parser_enclosed_template_argument_list (cp_parser* parser) saved_object_scope = parser->object_scope; /* We need to evaluate the template arguments, even though this template-id may be nested within a "sizeof". */ - saved_unevaluated_operand = cp_unevaluated_operand; - cp_unevaluated_operand = 0; - saved_inhibit_evaluation_warnings = c_inhibit_evaluation_warnings; - c_inhibit_evaluation_warnings = 0; + cp_evaluated ev; /* Parse the template-argument-list itself. */ if (cp_lexer_next_token_is (parser->lexer, CPP_GREATER) || cp_lexer_next_token_is (parser->lexer, CPP_RSHIFT)) @@ -27951,8 +27946,6 @@ cp_parser_enclosed_template_argument_list (cp_parser* parser) parser->scope = saved_scope; parser->qualifying_scope = saved_qualifying_scope; parser->object_scope = saved_object_scope; - cp_unevaluated_operand = saved_unevaluated_operand; - c_inhibit_evaluation_warnings = saved_inhibit_evaluation_warnings; return arguments; } |