From 40361afe10086b4ceb344679e0806256c6dad366 Mon Sep 17 00:00:00 2001
From: David Renshaw <dwrenshaw@gmail.com>
Date: Sun, 3 Dec 2017 11:19:16 -0500
Subject: [PATCH] minor simplification

---
 src/lvalue.rs | 33 ++++++++++++++++-----------------
 1 file changed, 16 insertions(+), 17 deletions(-)

diff --git a/src/lvalue.rs b/src/lvalue.rs
index 9d6145e..e0ff643 100644
--- a/src/lvalue.rs
+++ b/src/lvalue.rs
@@ -355,23 +355,22 @@ impl<'a, 'tcx> EvalContext<'a, 'tcx> {
                 extra: LvalueExtra::None,
             })
         } else {
-            let ptr_primval = match (base_ptr.to_ptr(), elem_size) {
-                (Ok(p), _) => {
-                    let byte_index = self.memory.constraints.add_binop_constraint(
-                        mir::BinOp::Mul,
-                        idx,
-                        PrimVal::Bytes(elem_size as u128),
-                        PrimValKind::U64);
-
-                    let offset = self.memory.constraints.add_binop_constraint(
-                        mir::BinOp::Add,
-                        p.offset.as_primval(),
-                        byte_index,
-                        PrimValKind::U64);
-                    PrimVal::Ptr(Pointer::with_primval_offset(p.alloc_id, offset))
-                }
-                (Err(_), 0) => base_ptr,
-                (Err(e), _) => return Err(e),
+            let ptr_primval = if elem_size == 0 {
+                base_ptr
+            } else {
+                let p = base_ptr.to_ptr()?;
+                let byte_index = self.memory.constraints.add_binop_constraint(
+                    mir::BinOp::Mul,
+                    idx,
+                    PrimVal::Bytes(elem_size as u128),
+                    PrimValKind::U64);
+
+                let offset = self.memory.constraints.add_binop_constraint(
+                    mir::BinOp::Add,
+                    p.offset.as_primval(),
+                    byte_index,
+                    PrimValKind::U64);
+                PrimVal::Ptr(Pointer::with_primval_offset(p.alloc_id, offset))
             };
 
             Ok(Lvalue::Ptr {
-- 
GitLab