diff options
| -rw-r--r-- | src/librustc/middle/liveness.rs | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/librustc/middle/liveness.rs b/src/librustc/middle/liveness.rs index 5170b377324..9c8cc45d396 100644 --- a/src/librustc/middle/liveness.rs +++ b/src/librustc/middle/liveness.rs @@ -1167,13 +1167,14 @@ impl<'a, 'tcx> Liveness<'a, 'tcx> { hir::ExprInlineAsm(ref ia) => { let succ = ia.outputs.iter().rev().fold(succ, - |succ, &(_, ref expr, _, is_indirect)| { + |succ, &(_, ref expr, is_rw, is_indirect)| { // see comment on lvalues // in propagate_through_lvalue_components() if is_indirect { self.propagate_through_expr(&**expr, succ) } else { - let succ = self.write_lvalue(&**expr, succ, ACC_WRITE); + let acc = if is_rw { ACC_WRITE|ACC_READ } else { ACC_WRITE }; + let succ = self.write_lvalue(&**expr, succ, acc); self.propagate_through_lvalue_components(&**expr, succ) } } |
