about summary refs log tree commit diff
path: root/compiler/rustc_mir/src/borrow_check/invalidation.rs
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/rustc_mir/src/borrow_check/invalidation.rs')
-rw-r--r--compiler/rustc_mir/src/borrow_check/invalidation.rs15
1 files changed, 15 insertions, 0 deletions
diff --git a/compiler/rustc_mir/src/borrow_check/invalidation.rs b/compiler/rustc_mir/src/borrow_check/invalidation.rs
index 1a3ba16585d..276d9381e32 100644
--- a/compiler/rustc_mir/src/borrow_check/invalidation.rs
+++ b/compiler/rustc_mir/src/borrow_check/invalidation.rs
@@ -92,6 +92,21 @@ impl<'cx, 'tcx> Visitor<'tcx> for InvalidationGenerator<'cx, 'tcx> {
                     self.consume_operand(location, input);
                 }
             }
+            StatementKind::CopyNonOverlapping(box rustc_middle::mir::CopyNonOverlapping {
+                ref src,
+                ref dst,
+                ref size,
+            }) => {
+                self.consume_operand(location, src);
+                self.consume_operand(location, dst);
+                self.consume_operand(location, size);
+                match dst {
+                    Operand::Move(ref place) | Operand::Copy(ref place) => {
+                        self.mutate_place(location, *place, Deep, JustWrite);
+                    }
+                    _ => {}
+                }
+            }
             StatementKind::Nop
             | StatementKind::Coverage(..)
             | StatementKind::AscribeUserType(..)