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