summaryrefslogtreecommitdiff
path: root/gcc/c-mudflap.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/c-mudflap.c')
-rw-r--r--gcc/c-mudflap.c14
1 files changed, 3 insertions, 11 deletions
diff --git a/gcc/c-mudflap.c b/gcc/c-mudflap.c
index e2fa5b1a438..78523e960a0 100644
--- a/gcc/c-mudflap.c
+++ b/gcc/c-mudflap.c
@@ -67,7 +67,7 @@ mflang_lookup_decl (const char* name)
void
mflang_flush_calls (tree enqueued_call_stmt_chain)
{
- tree fnname, t1, t2, body, block, scope;
+ tree fnname, t1, t2, cs;
/* Short-circuit! */
if (enqueued_call_stmt_chain == NULL_TREE)
@@ -84,17 +84,9 @@ mflang_flush_calls (tree enqueued_call_stmt_chain)
TREE_USED (current_function_decl) = 1;
mf_mark (current_function_decl);
- body = c_begin_compound_stmt ();
- push_scope ();
- clear_last_expr ();
- add_scope_stmt (/*begin_p=*/1, /*partial_p=*/0);
-
+ cs = c_begin_compound_stmt (true);
c_expand_expr_stmt (enqueued_call_stmt_chain);
+ add_stmt (c_end_compound_stmt (cs, true));
- scope = add_scope_stmt (/*begin_p=*/0, /*partial_p=*/0);
- block = pop_scope ();
- SCOPE_STMT_BLOCK (TREE_PURPOSE (scope)) = block;
- SCOPE_STMT_BLOCK (TREE_VALUE (scope)) = block;
- RECHAIN_STMTS (body, COMPOUND_BODY (body));
finish_function ();
}