about summary refs log tree commit diff
diff options
context:
space:
mode:
authorOlivia Crain <olivia@olivia.dev>2020-10-18 23:51:10 -0500
committerOlivia Crain <olivia@olivia.dev>2020-10-18 23:51:10 -0500
commit17c6c5932c8de780fcd1d06aff230e8cc6bca9f8 (patch)
tree493be7070aae724c48936671c5b05222aa2d2989
parentfd193f2d7f7ebed086de9977951cac76211533b0 (diff)
downloadrust-17c6c5932c8de780fcd1d06aff230e8cc6bca9f8.tar.gz
rust-17c6c5932c8de780fcd1d06aff230e8cc6bca9f8.zip
Mark InOut operands as used in RWU table with write_place
-rw-r--r--compiler/rustc_passes/src/liveness.rs4
1 files changed, 2 insertions, 2 deletions
diff --git a/compiler/rustc_passes/src/liveness.rs b/compiler/rustc_passes/src/liveness.rs
index e88b6cb11e5..7288015e170 100644
--- a/compiler/rustc_passes/src/liveness.rs
+++ b/compiler/rustc_passes/src/liveness.rs
@@ -1174,7 +1174,7 @@ impl<'a, 'tcx> Liveness<'a, 'tcx> {
                             }
                         }
                         hir::InlineAsmOperand::InOut { expr, .. } => {
-                            succ = self.write_place(expr, succ, ACC_READ | ACC_WRITE);
+                            succ = self.write_place(expr, succ, ACC_READ | ACC_WRITE | ACC_USE);
                         }
                         hir::InlineAsmOperand::SplitInOut { out_expr, .. } => {
                             if let Some(expr) = out_expr {
@@ -1199,7 +1199,7 @@ impl<'a, 'tcx> Liveness<'a, 'tcx> {
                             }
                         }
                         hir::InlineAsmOperand::InOut { expr, .. } => {
-                            succ = self.propagate_through_expr(expr, succ);
+                            succ = self.propagate_through_place_components(expr, succ);
                         }
                         hir::InlineAsmOperand::SplitInOut { in_expr, out_expr, .. } => {
                             if let Some(expr) = out_expr {