Remove box_alloc
from Machine
trait.
This commit is contained in:
parent
1b7f5a3818
commit
037e189783
4 changed files with 1 additions and 21 deletions
|
@ -406,13 +406,6 @@ impl<'mir, 'tcx> interpret::Machine<'mir, 'tcx> for CompileTimeInterpreter<'mir,
|
||||||
Err(ConstEvalErrKind::NeedsRfc("pointer arithmetic or comparison".to_string()).into())
|
Err(ConstEvalErrKind::NeedsRfc("pointer arithmetic or comparison".to_string()).into())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn box_alloc(
|
|
||||||
_ecx: &mut InterpCx<'mir, 'tcx, Self>,
|
|
||||||
_dest: &PlaceTy<'tcx>,
|
|
||||||
) -> InterpResult<'tcx> {
|
|
||||||
Err(ConstEvalErrKind::NeedsRfc("heap allocations via `box` keyword".to_string()).into())
|
|
||||||
}
|
|
||||||
|
|
||||||
fn before_terminator(ecx: &mut InterpCx<'mir, 'tcx, Self>) -> InterpResult<'tcx> {
|
fn before_terminator(ecx: &mut InterpCx<'mir, 'tcx, Self>) -> InterpResult<'tcx> {
|
||||||
// The step limit has already been hit in a previous call to `before_terminator`.
|
// The step limit has already been hit in a previous call to `before_terminator`.
|
||||||
if ecx.machine.steps_remaining == 0 {
|
if ecx.machine.steps_remaining == 0 {
|
||||||
|
|
|
@ -152,7 +152,7 @@ pub enum StackPopCleanup {
|
||||||
/// `ret` stores the block we jump to on a normal return, while `unwind`
|
/// `ret` stores the block we jump to on a normal return, while `unwind`
|
||||||
/// stores the block used for cleanup during unwinding.
|
/// stores the block used for cleanup during unwinding.
|
||||||
Goto { ret: Option<mir::BasicBlock>, unwind: StackPopUnwind },
|
Goto { ret: Option<mir::BasicBlock>, unwind: StackPopUnwind },
|
||||||
/// Just do nothing: Used by Main and for the `box_alloc` hook in miri.
|
/// Just do nothing: Used by Main and for TLS hooks in miri.
|
||||||
/// `cleanup` says whether locals are deallocated. Static computation
|
/// `cleanup` says whether locals are deallocated. Static computation
|
||||||
/// wants them leaked to intern what they need (and just throw away
|
/// wants them leaked to intern what they need (and just throw away
|
||||||
/// the entire `ecx` when it is done).
|
/// the entire `ecx` when it is done).
|
||||||
|
|
|
@ -208,12 +208,6 @@ pub trait Machine<'mir, 'tcx>: Sized {
|
||||||
right: &ImmTy<'tcx, Self::PointerTag>,
|
right: &ImmTy<'tcx, Self::PointerTag>,
|
||||||
) -> InterpResult<'tcx, (Scalar<Self::PointerTag>, bool, Ty<'tcx>)>;
|
) -> InterpResult<'tcx, (Scalar<Self::PointerTag>, bool, Ty<'tcx>)>;
|
||||||
|
|
||||||
/// Heap allocations via the `box` keyword.
|
|
||||||
fn box_alloc(
|
|
||||||
ecx: &mut InterpCx<'mir, 'tcx, Self>,
|
|
||||||
dest: &PlaceTy<'tcx, Self::PointerTag>,
|
|
||||||
) -> InterpResult<'tcx>;
|
|
||||||
|
|
||||||
/// Called to read the specified `local` from the `frame`.
|
/// Called to read the specified `local` from the `frame`.
|
||||||
/// Since reading a ZST is not actually accessing memory or locals, this is never invoked
|
/// Since reading a ZST is not actually accessing memory or locals, this is never invoked
|
||||||
/// for ZST reads.
|
/// for ZST reads.
|
||||||
|
|
|
@ -233,13 +233,6 @@ impl<'mir, 'tcx> interpret::Machine<'mir, 'tcx> for ConstPropMachine<'mir, 'tcx>
|
||||||
throw_machine_stop_str!("pointer arithmetic or comparisons aren't supported in ConstProp")
|
throw_machine_stop_str!("pointer arithmetic or comparisons aren't supported in ConstProp")
|
||||||
}
|
}
|
||||||
|
|
||||||
fn box_alloc(
|
|
||||||
_ecx: &mut InterpCx<'mir, 'tcx, Self>,
|
|
||||||
_dest: &PlaceTy<'tcx>,
|
|
||||||
) -> InterpResult<'tcx> {
|
|
||||||
throw_machine_stop_str!("can't const prop heap allocations")
|
|
||||||
}
|
|
||||||
|
|
||||||
fn access_local(
|
fn access_local(
|
||||||
_ecx: &InterpCx<'mir, 'tcx, Self>,
|
_ecx: &InterpCx<'mir, 'tcx, Self>,
|
||||||
frame: &Frame<'mir, 'tcx, Self::PointerTag, Self::FrameExtra>,
|
frame: &Frame<'mir, 'tcx, Self::PointerTag, Self::FrameExtra>,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue