diff options
| author | bors <bors@rust-lang.org> | 2022-05-14 10:36:47 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2022-05-14 10:36:47 +0000 |
| commit | 8019fa0dc08bb0e26d28ce29c3983408ffb2feac (patch) | |
| tree | 94beb20e5a5aaaa0cd40fc6f2bfadf9a7d1d6329 /compiler/rustc_const_eval/src/const_eval | |
| parent | 17180f4a56aedfb5fa2daa0973c85784c361c339 (diff) | |
| parent | bd5fce65c60ae83f37d0a46bac4e09e9fd30b2c2 (diff) | |
| download | rust-8019fa0dc08bb0e26d28ce29c3983408ffb2feac.tar.gz rust-8019fa0dc08bb0e26d28ce29c3983408ffb2feac.zip | |
Auto merge of #95826 - carbotaniuman:miri-permissive-provenance, r=RalfJung
Initial work on Miri permissive-exposed-provenance Rustc portion of the changes for portions of a permissive ptr-to-int model for Miri. The main changes here are changing `ptr_get_alloc` and `get_alloc_id` to return an Option, and also making ptr-to-int casts have an expose side effect.
Diffstat (limited to 'compiler/rustc_const_eval/src/const_eval')
| -rw-r--r-- | compiler/rustc_const_eval/src/const_eval/machine.rs | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/compiler/rustc_const_eval/src/const_eval/machine.rs b/compiler/rustc_const_eval/src/const_eval/machine.rs index d57504deeab..c5a11aaceaf 100644 --- a/compiler/rustc_const_eval/src/const_eval/machine.rs +++ b/compiler/rustc_const_eval/src/const_eval/machine.rs @@ -18,7 +18,7 @@ use rustc_target::spec::abi::Abi; use crate::interpret::{ self, compile_time_machine, AllocId, ConstAllocation, Frame, ImmTy, InterpCx, InterpResult, - OpTy, PlaceTy, Scalar, StackPopUnwind, + OpTy, PlaceTy, Pointer, Scalar, StackPopUnwind, }; use super::error::*; @@ -444,6 +444,14 @@ impl<'mir, 'tcx> interpret::Machine<'mir, 'tcx> for CompileTimeInterpreter<'mir, } #[inline(always)] + fn expose_ptr( + _ecx: &mut InterpCx<'mir, 'tcx, Self>, + _ptr: Pointer<AllocId>, + ) -> InterpResult<'tcx> { + Err(ConstEvalErrKind::NeedsRfc("exposing pointers".to_string()).into()) + } + + #[inline(always)] fn init_frame_extra( ecx: &mut InterpCx<'mir, 'tcx, Self>, frame: Frame<'mir, 'tcx>, |
