aboutsummaryrefslogtreecommitdiff
path: root/gcc/stmt.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/stmt.c')
-rw-r--r--gcc/stmt.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/gcc/stmt.c b/gcc/stmt.c
index 30bd84c5c6b..9451012d13b 100644
--- a/gcc/stmt.c
+++ b/gcc/stmt.c
@@ -1565,7 +1565,10 @@ expand_asm_operands (string, outputs, inputs, clobbers, vol, filename, line)
body = gen_rtx (ASM_OPERANDS, VOIDmode,
TREE_STRING_POINTER (string), "", 0, argvec, constraints,
filename, line);
- MEM_VOLATILE_P (body) = vol;
+
+ /* The only use of BODY is if no outputs are specified, so set
+ it volatile, at least for now. */
+ MEM_VOLATILE_P (body) = 1;
/* Eval the inputs and put them into ARGVEC.
Put their constraints into ASM_INPUTs and store in CONSTRAINTS. */
@@ -4026,9 +4029,13 @@ expand_decl_cleanup_no_eh (decl, cleanup)
tree decl, cleanup;
{
int save_eh = using_eh_for_cleanups_p;
+ int result;
+
using_eh_for_cleanups_p = 0;
- expand_decl_cleanup (decl, cleanup);
+ result = expand_decl_cleanup (decl, cleanup);
using_eh_for_cleanups_p = save_eh;
+
+ return result;
}
/* Arrange for the top element of the dynamic cleanup chain to be