diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e74d3c7ff67..f6de40a5122 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,8 @@ 2000-09-19 Richard Henderson + * c-typeck.c (c_expand_asm_operands): Restore the output tree + after expanding. + * stmt.c (expand_expr_stmt): Only call warn_if_unused_value if the tree has side effects. (warn_if_unused_value): Do not warn about void constructs. diff --git a/gcc/c-typeck.c b/gcc/c-typeck.c index 146143205c6..da8ced243b8 100644 --- a/gcc/c-typeck.c +++ b/gcc/c-typeck.c @@ -6603,6 +6603,10 @@ c_expand_asm_operands (string, outputs, inputs, clobbers, vol, filename, line) expand_expr (build_modify_expr (o[i], NOP_EXPR, TREE_VALUE (tail)), NULL_RTX, VOIDmode, EXPAND_NORMAL); free_temp_slots (); + + /* Restore the original value so that it's correct the next + time we expand this function. */ + TREE_VALUE (tail) = o[i]; } /* Detect modification of read-only values. (Otherwise done by build_modify_expr.) */