cp-tree.h (begin_compound_stmt): No scope arg is a bool.
* cp-tree.h (begin_compound_stmt): No scope arg is a bool. (finish_compound_stmt): Remove no scope arg. * decl.c (register_dtor_fn): Adjust begin_compound_stmt and end_compound_stmt calls. (expand_static_init, begin_destructor_body, begin_function_body, finish_function_body): Likewise. * decl2.c (start_objects, finish_objects, start_static_storage_duration_function, finish_static_storage_duration_function): Likewise. * init.c (begin_init_stmts, finish_init_stmts, construct_virtual_base, build_vec_init): Likewise. * method.c (do_build_assign_ref, synthesize_method): Likewise. * parser.c (cp_parser_compound_statement, cp_parser_implicitly_scoped_statement, cp_parser_already_scoped_statement): Likewise. * pt.c (tsubst_expr): Likewise. * semantics.c (begin_compound_stmt): No scope arg is a bool. (finish_compound_stmt): Remove no scope arg. * error.c (dump_expr) <COMPOUND_EXPR case>: A compound expr is always dyadic. From-SVN: r69882
This commit is contained in:
parent
8376cf3db9
commit
7a3397c739
@ -1,3 +1,27 @@
|
||||
2003-07-28 Nathan Sidwell <nathan@codesourcery.com>
|
||||
|
||||
* cp-tree.h (begin_compound_stmt): No scope arg is a bool.
|
||||
(finish_compound_stmt): Remove no scope arg.
|
||||
* decl.c (register_dtor_fn): Adjust begin_compound_stmt and
|
||||
end_compound_stmt calls.
|
||||
(expand_static_init, begin_destructor_body, begin_function_body,
|
||||
finish_function_body): Likewise.
|
||||
* decl2.c (start_objects, finish_objects,
|
||||
start_static_storage_duration_function,
|
||||
finish_static_storage_duration_function): Likewise.
|
||||
* init.c (begin_init_stmts, finish_init_stmts,
|
||||
construct_virtual_base, build_vec_init): Likewise.
|
||||
* method.c (do_build_assign_ref, synthesize_method): Likewise.
|
||||
* parser.c (cp_parser_compound_statement,
|
||||
cp_parser_implicitly_scoped_statement,
|
||||
cp_parser_already_scoped_statement): Likewise.
|
||||
* pt.c (tsubst_expr): Likewise.
|
||||
* semantics.c (begin_compound_stmt): No scope arg is a bool.
|
||||
(finish_compound_stmt): Remove no scope arg.
|
||||
|
||||
* error.c (dump_expr) <COMPOUND_EXPR case>: A compound expr is
|
||||
always dyadic.
|
||||
|
||||
2003-07-27 Mark Mitchell <mark@codesourcery.com>
|
||||
|
||||
* call.c (standard_conversion): Tweak handling of
|
||||
|
@ -4126,8 +4126,8 @@ extern void finish_handler_parms (tree, tree);
|
||||
extern void begin_catch_block (tree);
|
||||
extern void finish_handler (tree);
|
||||
extern void finish_cleanup (tree, tree);
|
||||
extern tree begin_compound_stmt (int);
|
||||
extern tree finish_compound_stmt (int, tree);
|
||||
extern tree begin_compound_stmt (bool);
|
||||
extern tree finish_compound_stmt (tree);
|
||||
extern tree finish_asm_stmt (tree, tree, tree, tree, tree);
|
||||
extern tree finish_label_stmt (tree);
|
||||
extern void finish_label_decl (tree);
|
||||
|
@ -8475,9 +8475,9 @@ register_dtor_fn (tree decl)
|
||||
pop_deferring_access_checks ();
|
||||
|
||||
/* Create the body of the anonymous function. */
|
||||
compound_stmt = begin_compound_stmt (/*has_no_scope=*/0);
|
||||
compound_stmt = begin_compound_stmt (/*has_no_scope=*/false);
|
||||
finish_expr_stmt (fcall);
|
||||
finish_compound_stmt (/*has_no_scope=*/0, compound_stmt);
|
||||
finish_compound_stmt (compound_stmt);
|
||||
end_cleanup_fn ();
|
||||
|
||||
/* Call atexit with the cleanup function. */
|
||||
@ -8562,7 +8562,7 @@ expand_static_init (tree decl, tree init)
|
||||
/* Begin the conditional initialization. */
|
||||
if_stmt = begin_if_stmt ();
|
||||
finish_if_stmt_cond (get_guard_cond (guard), if_stmt);
|
||||
then_clause = begin_compound_stmt (/*has_no_scope=*/0);
|
||||
then_clause = begin_compound_stmt (/*has_no_scope=*/false);
|
||||
|
||||
/* Do the initialization itself. */
|
||||
assignment = init ? init : NULL_TREE;
|
||||
@ -8586,7 +8586,7 @@ expand_static_init (tree decl, tree init)
|
||||
variable. */
|
||||
register_dtor_fn (decl);
|
||||
|
||||
finish_compound_stmt (/*has_no_scope=*/0, then_clause);
|
||||
finish_compound_stmt (then_clause);
|
||||
finish_then_clause (if_stmt);
|
||||
finish_if_stmt ();
|
||||
}
|
||||
@ -13840,14 +13840,14 @@ begin_destructor_body (void)
|
||||
initialize the vtables.) */
|
||||
finish_if_stmt_cond (boolean_true_node, if_stmt);
|
||||
|
||||
compound_stmt = begin_compound_stmt (/*has_no_scope=*/0);
|
||||
compound_stmt = begin_compound_stmt (/*has_no_scope=*/false);
|
||||
|
||||
/* Make all virtual function table pointers in non-virtual base
|
||||
classes point to CURRENT_CLASS_TYPE's virtual function
|
||||
tables. */
|
||||
initialize_vtbl_ptrs (current_class_ptr);
|
||||
|
||||
finish_compound_stmt (/*has_no_scope=*/0, compound_stmt);
|
||||
finish_compound_stmt (compound_stmt);
|
||||
finish_then_clause (if_stmt);
|
||||
finish_if_stmt ();
|
||||
|
||||
@ -13914,7 +13914,7 @@ begin_function_body (void)
|
||||
operation of dwarfout.c. */
|
||||
keep_next_level (1);
|
||||
|
||||
stmt = begin_compound_stmt (0);
|
||||
stmt = begin_compound_stmt (/*has_no_scope=*/false);
|
||||
COMPOUND_STMT_BODY_BLOCK (stmt) = 1;
|
||||
|
||||
if (processing_template_decl)
|
||||
@ -13940,7 +13940,7 @@ void
|
||||
finish_function_body (tree compstmt)
|
||||
{
|
||||
/* Close the block. */
|
||||
finish_compound_stmt (0, compstmt);
|
||||
finish_compound_stmt (compstmt);
|
||||
|
||||
if (processing_template_decl)
|
||||
/* Do nothing now. */;
|
||||
|
@ -2025,7 +2025,7 @@ start_objects (int method_type, int initp)
|
||||
DECL_GLOBAL_DTOR_P (current_function_decl) = 1;
|
||||
DECL_LANG_SPECIFIC (current_function_decl)->decl_flags.u2sel = 1;
|
||||
|
||||
body = begin_compound_stmt (/*has_no_scope=*/0);
|
||||
body = begin_compound_stmt (/*has_no_scope=*/false);
|
||||
|
||||
/* We cannot allow these functions to be elided, even if they do not
|
||||
have external linkage. And, there's no point in deferring
|
||||
@ -2046,7 +2046,7 @@ finish_objects (int method_type, int initp, tree body)
|
||||
tree fn;
|
||||
|
||||
/* Finish up. */
|
||||
finish_compound_stmt (/*has_no_scope=*/0, body);
|
||||
finish_compound_stmt (body);
|
||||
fn = finish_function (0);
|
||||
expand_or_defer_fn (fn);
|
||||
|
||||
@ -2182,7 +2182,7 @@ start_static_storage_duration_function (unsigned count)
|
||||
SF_PRE_PARSED);
|
||||
|
||||
/* Set up the scope of the outermost block in the function. */
|
||||
body = begin_compound_stmt (/*has_no_scope=*/0);
|
||||
body = begin_compound_stmt (/*has_no_scope=*/false);
|
||||
|
||||
/* This function must not be deferred because we are depending on
|
||||
its compilation to tell us what is TREE_SYMBOL_REFERENCED. */
|
||||
@ -2200,7 +2200,7 @@ static void
|
||||
finish_static_storage_duration_function (tree body)
|
||||
{
|
||||
/* Close out the function. */
|
||||
finish_compound_stmt (/*has_no_scope=*/0, body);
|
||||
finish_compound_stmt (body);
|
||||
expand_or_defer_fn (finish_function (0));
|
||||
}
|
||||
|
||||
|
@ -1491,20 +1491,9 @@ dump_expr (tree t, int flags)
|
||||
|
||||
case COMPOUND_EXPR:
|
||||
pp_left_paren (cxx_pp);
|
||||
/* Within templates, a COMPOUND_EXPR has only one operand,
|
||||
containing a TREE_LIST of the two operands. */
|
||||
if (TREE_CODE (TREE_OPERAND (t, 0)) == TREE_LIST)
|
||||
{
|
||||
if (TREE_OPERAND (t, 1))
|
||||
abort();
|
||||
dump_expr_list (TREE_OPERAND (t, 0), flags | TFF_EXPR_IN_PARENS);
|
||||
}
|
||||
else
|
||||
{
|
||||
dump_expr (TREE_OPERAND (t, 0), flags | TFF_EXPR_IN_PARENS);
|
||||
pp_separate_with_comma (cxx_pp);
|
||||
dump_expr (TREE_OPERAND (t, 1), flags | TFF_EXPR_IN_PARENS);
|
||||
}
|
||||
dump_expr (TREE_OPERAND (t, 0), flags | TFF_EXPR_IN_PARENS);
|
||||
pp_separate_with_comma (cxx_pp);
|
||||
dump_expr (TREE_OPERAND (t, 1), flags | TFF_EXPR_IN_PARENS);
|
||||
pp_right_paren (cxx_pp);
|
||||
break;
|
||||
|
||||
|
@ -72,7 +72,7 @@ begin_init_stmts (tree *stmt_expr_p, tree *compound_stmt_p)
|
||||
bool is_global = !building_stmt_tree ();
|
||||
|
||||
*stmt_expr_p = begin_stmt_expr ();
|
||||
*compound_stmt_p = begin_compound_stmt (/*has_no_scope=*/1);
|
||||
*compound_stmt_p = begin_compound_stmt (/*has_no_scope=*/true);
|
||||
|
||||
return is_global;
|
||||
}
|
||||
@ -83,7 +83,7 @@ begin_init_stmts (tree *stmt_expr_p, tree *compound_stmt_p)
|
||||
static tree
|
||||
finish_init_stmts (bool is_global, tree stmt_expr, tree compound_stmt)
|
||||
{
|
||||
finish_compound_stmt (/*has_no_scope=*/1, compound_stmt);
|
||||
finish_compound_stmt (compound_stmt);
|
||||
|
||||
stmt_expr = finish_stmt_expr (stmt_expr);
|
||||
STMT_EXPR_NO_SCOPE (stmt_expr) = true;
|
||||
@ -842,7 +842,7 @@ construct_virtual_base (tree vbase, tree arguments)
|
||||
flag = TREE_CHAIN (DECL_ARGUMENTS (current_function_decl));
|
||||
inner_if_stmt = begin_if_stmt ();
|
||||
finish_if_stmt_cond (flag, inner_if_stmt);
|
||||
compound_stmt = begin_compound_stmt (/*has_no_scope=*/1);
|
||||
compound_stmt = begin_compound_stmt (/*has_no_scope=*/true);
|
||||
|
||||
/* Compute the location of the virtual base. If we're
|
||||
constructing virtual bases, then we must be the most derived
|
||||
@ -852,7 +852,7 @@ construct_virtual_base (tree vbase, tree arguments)
|
||||
|
||||
expand_aggr_init_1 (vbase, current_class_ref, exp, arguments,
|
||||
LOOKUP_COMPLAIN);
|
||||
finish_compound_stmt (/*has_no_scope=*/1, compound_stmt);
|
||||
finish_compound_stmt (compound_stmt);
|
||||
finish_then_clause (inner_if_stmt);
|
||||
finish_if_stmt ();
|
||||
|
||||
@ -2485,7 +2485,7 @@ build_vec_init (tree base, tree maxindex, tree init, int from_array)
|
||||
&& from_array != 2)
|
||||
{
|
||||
try_block = begin_try_block ();
|
||||
try_body = begin_compound_stmt (/*has_no_scope=*/1);
|
||||
try_body = begin_compound_stmt (/*has_no_scope=*/true);
|
||||
}
|
||||
|
||||
if (init != NULL_TREE && TREE_CODE (init) == CONSTRUCTOR)
|
||||
@ -2564,7 +2564,7 @@ build_vec_init (tree base, tree maxindex, tree init, int from_array)
|
||||
for_stmt);
|
||||
|
||||
/* Otherwise, loop through the elements. */
|
||||
for_body = begin_compound_stmt (/*has_no_scope=*/1);
|
||||
for_body = begin_compound_stmt (/*has_no_scope=*/true);
|
||||
|
||||
if (from_array)
|
||||
{
|
||||
@ -2605,7 +2605,7 @@ build_vec_init (tree base, tree maxindex, tree init, int from_array)
|
||||
if (base2)
|
||||
finish_expr_stmt (build_unary_op (PREINCREMENT_EXPR, base2, 0));
|
||||
|
||||
finish_compound_stmt (/*has_no_scope=*/1, for_body);
|
||||
finish_compound_stmt (for_body);
|
||||
finish_for_stmt (for_stmt);
|
||||
}
|
||||
|
||||
@ -2625,7 +2625,7 @@ build_vec_init (tree base, tree maxindex, tree init, int from_array)
|
||||
type = strip_array_types (type);
|
||||
}
|
||||
|
||||
finish_compound_stmt (/*has_no_scope=*/1, try_body);
|
||||
finish_compound_stmt (try_body);
|
||||
finish_cleanup_try_block (try_block);
|
||||
e = build_vec_delete_1 (rval, m,
|
||||
type,
|
||||
|
@ -587,7 +587,7 @@ do_build_assign_ref (tree fndecl)
|
||||
tree parm = TREE_CHAIN (DECL_ARGUMENTS (fndecl));
|
||||
tree compound_stmt;
|
||||
|
||||
compound_stmt = begin_compound_stmt (/*has_no_scope=*/0);
|
||||
compound_stmt = begin_compound_stmt (/*has_no_scope=*/false);
|
||||
parm = convert_from_reference (parm);
|
||||
|
||||
if (TYPE_HAS_TRIVIAL_ASSIGN_REF (current_class_type)
|
||||
@ -680,7 +680,7 @@ do_build_assign_ref (tree fndecl)
|
||||
}
|
||||
}
|
||||
finish_return_stmt (current_class_ref);
|
||||
finish_compound_stmt (/*has_no_scope=*/0, compound_stmt);
|
||||
finish_compound_stmt (compound_stmt);
|
||||
}
|
||||
|
||||
void
|
||||
@ -744,8 +744,8 @@ synthesize_method (tree fndecl)
|
||||
if (need_body)
|
||||
{
|
||||
tree compound_stmt;
|
||||
compound_stmt = begin_compound_stmt (/*has_no_scope=*/0);
|
||||
finish_compound_stmt (/*has_no_scope=*/0, compound_stmt);
|
||||
compound_stmt = begin_compound_stmt (/*has_no_scope=*/false);
|
||||
finish_compound_stmt (compound_stmt);
|
||||
}
|
||||
|
||||
finish_function_body (stmt);
|
||||
|
@ -5280,11 +5280,11 @@ cp_parser_compound_statement (cp_parser *parser)
|
||||
if (!cp_parser_require (parser, CPP_OPEN_BRACE, "`{'"))
|
||||
return error_mark_node;
|
||||
/* Begin the compound-statement. */
|
||||
compound_stmt = begin_compound_stmt (/*has_no_scope=*/0);
|
||||
compound_stmt = begin_compound_stmt (/*has_no_scope=*/false);
|
||||
/* Parse an (optional) statement-seq. */
|
||||
cp_parser_statement_seq_opt (parser);
|
||||
/* Finish the compound-statement. */
|
||||
finish_compound_stmt (/*has_no_scope=*/0, compound_stmt);
|
||||
finish_compound_stmt (compound_stmt);
|
||||
/* Consume the `}'. */
|
||||
cp_parser_require (parser, CPP_CLOSE_BRACE, "`}'");
|
||||
|
||||
@ -5762,11 +5762,11 @@ cp_parser_implicitly_scoped_statement (cp_parser* parser)
|
||||
if (cp_lexer_next_token_is_not (parser->lexer, CPP_OPEN_BRACE))
|
||||
{
|
||||
/* Create a compound-statement. */
|
||||
statement = begin_compound_stmt (/*has_no_scope=*/0);
|
||||
statement = begin_compound_stmt (/*has_no_scope=*/false);
|
||||
/* Parse the dependent-statement. */
|
||||
cp_parser_statement (parser);
|
||||
/* Finish the dummy compound-statement. */
|
||||
finish_compound_stmt (/*has_no_scope=*/0, statement);
|
||||
finish_compound_stmt (statement);
|
||||
}
|
||||
/* Otherwise, we simply parse the statement directly. */
|
||||
else
|
||||
@ -5790,11 +5790,11 @@ cp_parser_already_scoped_statement (cp_parser* parser)
|
||||
tree statement;
|
||||
|
||||
/* Create a compound-statement. */
|
||||
statement = begin_compound_stmt (/*has_no_scope=*/1);
|
||||
statement = begin_compound_stmt (/*has_no_scope=*/true);
|
||||
/* Parse the dependent-statement. */
|
||||
cp_parser_statement (parser);
|
||||
/* Finish the dummy compound-statement. */
|
||||
finish_compound_stmt (/*has_no_scope=*/1, statement);
|
||||
finish_compound_stmt (statement);
|
||||
}
|
||||
/* Otherwise, we simply parse the statement directly. */
|
||||
else
|
||||
|
@ -7732,7 +7732,7 @@ tsubst_expr (tree t, tree args, tsubst_flags_t complain, tree in_decl)
|
||||
if (COMPOUND_STMT_BODY_BLOCK (t))
|
||||
finish_function_body (stmt);
|
||||
else
|
||||
finish_compound_stmt (COMPOUND_STMT_NO_SCOPE (t), stmt);
|
||||
finish_compound_stmt (stmt);
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -985,12 +985,12 @@ finish_handler (tree handler)
|
||||
RECHAIN_STMTS (handler, HANDLER_BODY (handler));
|
||||
}
|
||||
|
||||
/* Begin a compound-statement. If HAS_NO_SCOPE is nonzero, the
|
||||
/* Begin a compound-statement. If HAS_NO_SCOPE is true, the
|
||||
compound-statement does not define a scope. Returns a new
|
||||
COMPOUND_STMT if appropriate. */
|
||||
COMPOUND_STMT. */
|
||||
|
||||
tree
|
||||
begin_compound_stmt (int has_no_scope)
|
||||
begin_compound_stmt (bool has_no_scope)
|
||||
{
|
||||
tree r;
|
||||
int is_try = 0;
|
||||
@ -1018,20 +1018,18 @@ begin_compound_stmt (int has_no_scope)
|
||||
return r;
|
||||
}
|
||||
|
||||
/* Finish a compound-statement, which may be given by COMPOUND_STMT.
|
||||
If HAS_NO_SCOPE is nonzero, the compound statement does not define
|
||||
a scope. */
|
||||
/* Finish a compound-statement, which is given by COMPOUND_STMT. */
|
||||
|
||||
tree
|
||||
finish_compound_stmt (int has_no_scope, tree compound_stmt)
|
||||
finish_compound_stmt (tree compound_stmt)
|
||||
{
|
||||
tree r;
|
||||
tree t;
|
||||
|
||||
if (!has_no_scope)
|
||||
r = do_poplevel ();
|
||||
else
|
||||
if (COMPOUND_STMT_NO_SCOPE (compound_stmt))
|
||||
r = NULL_TREE;
|
||||
else
|
||||
r = do_poplevel ();
|
||||
|
||||
RECHAIN_STMTS (compound_stmt, COMPOUND_BODY (compound_stmt));
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user