diff options
| author | Oliver Scherer <github35764891676564198441@oli-obk.de> | 2019-06-11 10:56:41 +0200 |
|---|---|---|
| committer | Oliver Scherer <github35764891676564198441@oli-obk.de> | 2019-06-19 15:16:09 +0200 |
| commit | 4399299edc7200685703b4443cf92d670526d469 (patch) | |
| tree | 5034d99ae15241a06fd2f487be66cba03340614b | |
| parent | 9cb052acfb25c12d5e8960f9ea53b69a2f19b0e8 (diff) | |
| download | rust-4399299edc7200685703b4443cf92d670526d469.tar.gz rust-4399299edc7200685703b4443cf92d670526d469.zip | |
mark_definedness cannot fail
| -rw-r--r-- | src/librustc/mir/interpret/allocation.rs | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/librustc/mir/interpret/allocation.rs b/src/librustc/mir/interpret/allocation.rs index d7caf950dce..8381125798a 100644 --- a/src/librustc/mir/interpret/allocation.rs +++ b/src/librustc/mir/interpret/allocation.rs @@ -247,7 +247,7 @@ impl<'tcx, Tag: Copy, Extra: AllocationExtra<Tag>> Allocation<Tag, Extra> { assert_ne!(size.bytes(), 0, "0-sized accesses should never even get a `Pointer`"); self.check_bounds(cx, ptr, size, CheckInAllocMsg::MemoryAccessTest)?; - self.mark_definedness(ptr, size, true)?; + self.mark_definedness(ptr, size, true); self.clear_relocations(cx, ptr, size)?; AllocationExtra::memory_written(self, ptr, size)?; @@ -406,7 +406,10 @@ impl<'tcx, Tag: Copy, Extra: AllocationExtra<Tag>> Allocation<Tag, Extra> { { let val = match val { ScalarMaybeUndef::Scalar(scalar) => scalar, - ScalarMaybeUndef::Undef => return self.mark_definedness(ptr, type_size, false), + ScalarMaybeUndef::Undef => { + self.mark_definedness(ptr, type_size, false); + return Ok(()); + }, }; let bytes = match val.to_bits_or_ptr(type_size, cx) { @@ -550,16 +553,15 @@ impl<'tcx, Tag, Extra> Allocation<Tag, Extra> { ptr: Pointer<Tag>, size: Size, new_state: bool, - ) -> InterpResult<'tcx> { + ) { if size.bytes() == 0 { - return Ok(()); + return; } self.undef_mask.set_range( ptr.offset, ptr.offset + size, new_state, ); - Ok(()) } } |
