Skip to content

Commit

Permalink
Merge pull request #516 from RalfJung/rc
Browse files Browse the repository at this point in the history
Rc should be fixed
  • Loading branch information
oli-obk committed Nov 12, 2018
2 parents 61debe8 + e7aa5c6 commit bb5cea0
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 30 deletions.
2 changes: 1 addition & 1 deletion rust-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
nightly-2018-11-08
nightly-2018-11-12
18 changes: 0 additions & 18 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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>,
Expand Down
19 changes: 11 additions & 8 deletions src/stacked_borrows.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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,
};

Expand Down Expand Up @@ -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>,
Expand Down
3 changes: 0 additions & 3 deletions tests/run-pass/rc.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
// FIXME: Disabled due to https://github.com/rust-lang/rust/issues/55747
// ignore-test

use std::cell::RefCell;
use std::rc::Rc;

Expand Down

0 comments on commit bb5cea0

Please sign in to comment.