From e7aa5c68ffc221ee07d37ee1d29b96282729b7fe Mon Sep 17 00:00:00 2001 From: Ralf Jung Date: Mon, 12 Nov 2018 08:54:12 +0100 Subject: [PATCH] Update rustc for AllocationExtra trait Based on https://github.com/solson/miri/pull/493 but there were more conflicts than code so I opted not to cherry-pick. --- rust-version | 2 +- src/lib.rs | 18 ------------------ src/stacked_borrows.rs | 19 +++++++++++-------- 3 files changed, 12 insertions(+), 27 deletions(-) diff --git a/rust-version b/rust-version index 0ad815872411..fb6d167ec642 100644 --- a/rust-version +++ b/rust-version @@ -1 +1 @@ -nightly-2018-11-08 +nightly-2018-11-12 diff --git a/src/lib.rs b/src/lib.rs index 134986c814de..ab34841df89e 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -446,24 +446,6 @@ impl<'a, 'mir, 'tcx> Machine<'a, 'mir, 'tcx> for Evaluator<'tcx> { Cow::Owned(alloc) } - #[inline(always)] - fn memory_read( - alloc: &Allocation, - ptr: Pointer, - size: Size, - ) -> EvalResult<'tcx> { - alloc.extra.memory_read(ptr, size) - } - - #[inline(always)] - fn memory_written( - alloc: &mut Allocation, - ptr: Pointer, - size: Size, - ) -> EvalResult<'tcx> { - alloc.extra.memory_written(ptr, size) - } - #[inline(always)] fn memory_deallocated( alloc: &mut Allocation, diff --git a/src/stacked_borrows.rs b/src/stacked_borrows.rs index e1abcb20af75..475033d74c66 100644 --- a/src/stacked_borrows.rs +++ b/src/stacked_borrows.rs @@ -5,7 +5,7 @@ use rustc::hir; use crate::{ EvalResult, MiriEvalContext, HelpersEvalContextExt, - MemoryKind, MiriMemoryKind, RangeMap, AllocId, + MemoryKind, MiriMemoryKind, RangeMap, AllocId, Allocation, AllocationExtra, Pointer, PlaceTy, MPlaceTy, }; @@ -343,27 +343,30 @@ impl<'tcx> Stacks { } /// Hooks and glue -impl<'tcx> Stacks { +impl AllocationExtra for Stacks { #[inline(always)] - pub fn memory_read( - &self, + fn memory_read<'tcx>( + alloc: &Allocation, ptr: Pointer, size: Size, ) -> EvalResult<'tcx> { // Reads behave exactly like the first half of a reborrow-to-shr - self.use_and_maybe_re_borrow(ptr, size, UsageKind::Read, None) + alloc.extra.use_and_maybe_re_borrow(ptr, size, UsageKind::Read, None) } #[inline(always)] - pub fn memory_written( - &mut self, + fn memory_written<'tcx>( + alloc: &mut Allocation, ptr: Pointer, size: Size, ) -> EvalResult<'tcx> { // Writes behave exactly like the first half of a reborrow-to-mut - self.use_and_maybe_re_borrow(ptr, size, UsageKind::Write, None) + alloc.extra.use_and_maybe_re_borrow(ptr, size, UsageKind::Write, None) } +} +impl<'tcx> Stacks { + #[inline(always)] pub fn memory_deallocated( &mut self, ptr: Pointer,