about summary refs log tree commit diff
path: root/src/librustc_trans
diff options
context:
space:
mode:
authorEduard-Mihai Burtescu <edy.burt@gmail.com>2017-09-03 21:55:41 +0300
committerEduard-Mihai Burtescu <edy.burt@gmail.com>2017-09-03 21:55:41 +0300
commit2f42cd848905e4d473cacce0d9da769b2e712f0c (patch)
treece1bf0fcc9c822e2ef31a1a5d7e0e169b1d281a4 /src/librustc_trans
parentc9119252438a0f6c6c7a289bac91dd9600d45dd0 (diff)
downloadrust-2f42cd848905e4d473cacce0d9da769b2e712f0c.tar.gz
rust-2f42cd848905e4d473cacce0d9da769b2e712f0c.zip
rustc_mir: use Local in ProjectionElem::Index.
Diffstat (limited to 'src/librustc_trans')
-rw-r--r--src/librustc_trans/mir/constant.rs3
-rw-r--r--src/librustc_trans/mir/lvalue.rs3
2 files changed, 4 insertions, 2 deletions
diff --git a/src/librustc_trans/mir/constant.rs b/src/librustc_trans/mir/constant.rs
index 65b9fec7eff..9987c9c3310 100644
--- a/src/librustc_trans/mir/constant.rs
+++ b/src/librustc_trans/mir/constant.rs
@@ -471,7 +471,8 @@ impl<'a, 'tcx> MirConstContext<'a, 'tcx> {
                         };
                         (Base::Value(llprojected), llextra)
                     }
-                    mir::ProjectionElem::Index(ref index) => {
+                    mir::ProjectionElem::Index(index) => {
+                        let index = &mir::Operand::Consume(mir::Lvalue::Local(index));
                         let llindex = self.const_operand(index, span)?.llval;
 
                         let iv = if let Some(iv) = common::const_to_opt_u128(llindex, false) {
diff --git a/src/librustc_trans/mir/lvalue.rs b/src/librustc_trans/mir/lvalue.rs
index 89c76ccdd27..8155303b0d3 100644
--- a/src/librustc_trans/mir/lvalue.rs
+++ b/src/librustc_trans/mir/lvalue.rs
@@ -333,7 +333,8 @@ impl<'a, 'tcx> MirContext<'a, 'tcx> {
                         };
                         (tr_base.trans_field_ptr(bcx, field.index()), llextra)
                     }
-                    mir::ProjectionElem::Index(ref index) => {
+                    mir::ProjectionElem::Index(index) => {
+                        let index = &mir::Operand::Consume(mir::Lvalue::Local(index));
                         let index = self.trans_operand(bcx, index);
                         let llindex = self.prepare_index(bcx, index.immediate());
                         ((tr_base.project_index(bcx, llindex), align), ptr::null_mut())