about summary refs log tree commit diff
diff options
context:
space:
mode:
authorouz-a <oguz.agcayazi@gmail.com>2022-06-13 16:37:41 +0300
committerouz-a <oguz.agcayazi@gmail.com>2022-07-12 14:26:41 +0300
commit9efccc97e2a495660fe2915f3b333293f01ed2a9 (patch)
tree1efdbc6152b474b1d795cfe586886d41f0c3c123
parent743cee6ca9c406fb489ffcff34bc068ce3d895f3 (diff)
downloadrust-9efccc97e2a495660fe2915f3b333293f01ed2a9.tar.gz
rust-9efccc97e2a495660fe2915f3b333293f01ed2a9.zip
add new rval, pull deref early
-rw-r--r--src/base.rs5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/base.rs b/src/base.rs
index f71d749df62..63cd4d6de4c 100644
--- a/src/base.rs
+++ b/src/base.rs
@@ -503,6 +503,11 @@ fn codegen_stmt<'tcx>(
                     let val = codegen_operand(fx, operand);
                     lval.write_cvalue(fx, val);
                 }
+                Rvalue::CopyForDeref(place) => {
+                    let cplace = codegen_place(fx, place);
+                    let val = cplace.to_cvalue(fx);
+                    lval.write_cvalue(fx, val)
+                }
                 Rvalue::Ref(_, _, place) | Rvalue::AddressOf(_, place) => {
                     let place = codegen_place(fx, place);
                     let ref_ = place.place_ref(fx, lval.layout());