about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorOliver Schneider <git-spam-no-reply9815368754983@oli-obk.de>2017-08-28 16:06:49 +0200
committerOliver Schneider <git-spam-no-reply9815368754983@oli-obk.de>2017-08-28 16:06:49 +0200
commit2f0dcfba1d7fd007af1d9d9cfb92bf67ec151f7e (patch)
tree6227ec99b2a5507cdafcf8312b225926625d2f43 /src
parent129b914bdc9bac5c10181d1e87f722be15cb627c (diff)
downloadrust-2f0dcfba1d7fd007af1d9d9cfb92bf67ec151f7e.tar.gz
rust-2f0dcfba1d7fd007af1d9d9cfb92bf67ec151f7e.zip
Simplify `write_value_to_ptr`
Diffstat (limited to 'src')
-rw-r--r--src/librustc_mir/interpret/eval_context.rs19
1 files changed, 6 insertions, 13 deletions
diff --git a/src/librustc_mir/interpret/eval_context.rs b/src/librustc_mir/interpret/eval_context.rs
index 39ead337906..044f37947d3 100644
--- a/src/librustc_mir/interpret/eval_context.rs
+++ b/src/librustc_mir/interpret/eval_context.rs
@@ -1622,20 +1622,13 @@ impl<'a, 'tcx, M: Machine<'tcx>> EvalContext<'a, 'tcx, M> {
             }
             Value::ByVal(primval) => {
                 let size = self.type_size(dest_ty)?.expect("dest type must be sized");
-                // TODO: This fn gets called with sizes like 0 and 6, which cannot be a primitive type
-                // and hence is not supported by write_primval.
-                // (E.g. in the arrays.rs testcase.)  That seems to only happen for Undef though,
-                // so we special-case that here.
-                match primval {
-                    PrimVal::Undef => {
-                        self.memory.mark_definedness(dest, size, false)?;
-                    }
-                    _ => {
-                        // TODO: Do we need signedness?
-                        self.memory.write_primval(dest.to_ptr()?, primval, size, false)?;
-                    }
+                if size == 0 {
+                    assert!(primval.is_undef());
+                    Ok(())
+                } else {
+                    // TODO: Do we need signedness?
+                    self.memory.write_primval(dest.to_ptr()?, primval, size, false)
                 }
-                Ok(())
             }
             Value::ByValPair(a, b) => self.write_pair_to_ptr(a, b, dest.to_ptr()?, dest_ty),
         }