summary refs log tree commit diff
path: root/compiler
diff options
context:
space:
mode:
authorCamille GILLOT <gillot.camille@gmail.com>2025-07-05 22:53:19 +0000
committerJosh Stone <jistone@redhat.com>2025-07-10 13:30:37 -0700
commit091578b73d370eae94e5f3fc999c198eb87b24f5 (patch)
tree694464e2ef948c6ce5b5631fad99ab4816870e6b /compiler
parentd53af551254344330472c12bfb17bc1363fc0ec1 (diff)
downloadrust-091578b73d370eae94e5f3fc999c198eb87b24f5.tar.gz
rust-091578b73d370eae94e5f3fc999c198eb87b24f5.zip
Do not unify borrowed locals in CopyProp.
(cherry picked from commit bab9c752e836bb94d87249422d48f8c85b4f41a4)
Diffstat (limited to 'compiler')
-rw-r--r--compiler/rustc_mir_transform/src/ssa.rs4
1 files changed, 2 insertions, 2 deletions
diff --git a/compiler/rustc_mir_transform/src/ssa.rs b/compiler/rustc_mir_transform/src/ssa.rs
index 03b6f9b7ff3..d3b4b99e932 100644
--- a/compiler/rustc_mir_transform/src/ssa.rs
+++ b/compiler/rustc_mir_transform/src/ssa.rs
@@ -322,8 +322,8 @@ fn compute_copy_classes(ssa: &mut SsaLocals, body: &Body<'_>) {
         // visited before `local`, and we just have to copy the representing local.
         let head = copies[rhs];
 
-        // Do not unify two borrowed locals.
-        if borrowed_classes.contains(local) && borrowed_classes.contains(head) {
+        // Do not unify borrowed locals.
+        if borrowed_classes.contains(local) || borrowed_classes.contains(head) {
             continue;
         }