diff options
| author | Oliver Schneider <git-spam-no-reply9815368754983@oli-obk.de> | 2017-08-28 16:06:49 +0200 |
|---|---|---|
| committer | Oliver Schneider <git-spam-no-reply9815368754983@oli-obk.de> | 2017-08-28 16:06:49 +0200 |
| commit | 2f0dcfba1d7fd007af1d9d9cfb92bf67ec151f7e (patch) | |
| tree | 6227ec99b2a5507cdafcf8312b225926625d2f43 /src | |
| parent | 129b914bdc9bac5c10181d1e87f722be15cb627c (diff) | |
| download | rust-2f0dcfba1d7fd007af1d9d9cfb92bf67ec151f7e.tar.gz rust-2f0dcfba1d7fd007af1d9d9cfb92bf67ec151f7e.zip | |
Simplify `write_value_to_ptr`
Diffstat (limited to 'src')
| -rw-r--r-- | src/librustc_mir/interpret/eval_context.rs | 19 |
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), } |
