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.
This commit is contained in:
parent
f233dc0687
commit
e7aa5c68ff
3 changed files with 12 additions and 27 deletions
|
|
@ -1 +1 @@
|
|||
nightly-2018-11-08
|
||||
nightly-2018-11-12
|
||||
|
|
|
|||
18
src/lib.rs
18
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<Borrow, Self::AllocExtra>,
|
||||
ptr: Pointer<Borrow>,
|
||||
size: Size,
|
||||
) -> EvalResult<'tcx> {
|
||||
alloc.extra.memory_read(ptr, size)
|
||||
}
|
||||
|
||||
#[inline(always)]
|
||||
fn memory_written(
|
||||
alloc: &mut Allocation<Borrow, Self::AllocExtra>,
|
||||
ptr: Pointer<Borrow>,
|
||||
size: Size,
|
||||
) -> EvalResult<'tcx> {
|
||||
alloc.extra.memory_written(ptr, size)
|
||||
}
|
||||
|
||||
#[inline(always)]
|
||||
fn memory_deallocated(
|
||||
alloc: &mut Allocation<Borrow, Self::AllocExtra>,
|
||||
|
|
|
|||
|
|
@ -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<Borrow> for Stacks {
|
||||
#[inline(always)]
|
||||
pub fn memory_read(
|
||||
&self,
|
||||
fn memory_read<'tcx>(
|
||||
alloc: &Allocation<Borrow, Stacks>,
|
||||
ptr: Pointer<Borrow>,
|
||||
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<Borrow, Stacks>,
|
||||
ptr: Pointer<Borrow>,
|
||||
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<Borrow>,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue