提交 2984670c 编写于 作者: R Ralf Jung

avoid 'miri' when refering to the shared interpreter

上级 828bdc2c
//! Intrinsics and other functions that the miri engine executes without //! Intrinsics and other functions that the interpreter executes without
//! looking at their MIR. Intrinsics/functions supported here are shared by CTFE //! looking at their MIR. Intrinsics/functions supported here are shared by CTFE
//! and miri. //! and miri.
......
...@@ -91,7 +91,7 @@ pub fn as_instance(self) -> InterpResult<'tcx, Instance<'tcx>> { ...@@ -91,7 +91,7 @@ pub fn as_instance(self) -> InterpResult<'tcx, Instance<'tcx>> {
// `Memory` has to depend on the `Machine` because some of its operations // `Memory` has to depend on the `Machine` because some of its operations
// (e.g., `get`) call a `Machine` hook. // (e.g., `get`) call a `Machine` hook.
pub struct Memory<'mir, 'tcx, M: Machine<'mir, 'tcx>> { pub struct Memory<'mir, 'tcx, M: Machine<'mir, 'tcx>> {
/// Allocations local to this instance of the miri engine. The kind /// Allocations local to this instance of the interpreter. The kind
/// helps ensure that the same mechanism is used for allocation and /// helps ensure that the same mechanism is used for allocation and
/// deallocation. When an allocation is not found here, it is a /// deallocation. When an allocation is not found here, it is a
/// global and looked up in the `tcx` for read access. Some machines may /// global and looked up in the `tcx` for read access. Some machines may
......
...@@ -155,7 +155,7 @@ pub fn kind(&self) -> &InterpError<'tcx> { ...@@ -155,7 +155,7 @@ pub fn kind(&self) -> &InterpError<'tcx> {
} }
fn print_backtrace(backtrace: &Backtrace) { fn print_backtrace(backtrace: &Backtrace) {
eprintln!("\n\nAn error occurred in miri:\n{backtrace}"); eprintln!("\n\nAn error occurred in the MIR interpreter:\n{backtrace}");
} }
impl From<ErrorGuaranteed> for InterpErrorInfo<'_> { impl From<ErrorGuaranteed> for InterpErrorInfo<'_> {
......
...@@ -609,7 +609,7 @@ pub fn try_get_global_alloc(self, id: AllocId) -> Option<GlobalAlloc<'tcx>> { ...@@ -609,7 +609,7 @@ pub fn try_get_global_alloc(self, id: AllocId) -> Option<GlobalAlloc<'tcx>> {
/// Panics in case the `AllocId` is dangling. Since that is impossible for `AllocId`s in /// Panics in case the `AllocId` is dangling. Since that is impossible for `AllocId`s in
/// constants (as all constants must pass interning and validation that check for dangling /// constants (as all constants must pass interning and validation that check for dangling
/// ids), this function is frequently used throughout rustc, but should not be used within /// ids), this function is frequently used throughout rustc, but should not be used within
/// the miri engine. /// the interpreter.
pub fn global_alloc(self, id: AllocId) -> GlobalAlloc<'tcx> { pub fn global_alloc(self, id: AllocId) -> GlobalAlloc<'tcx> {
match self.try_get_global_alloc(id) { match self.try_get_global_alloc(id) {
Some(alloc) => alloc, Some(alloc) => alloc,
......
...@@ -384,7 +384,7 @@ fn collect_items_rec<'tcx>( ...@@ -384,7 +384,7 @@ fn collect_items_rec<'tcx>(
if let Ok(alloc) = tcx.eval_static_initializer(def_id) { if let Ok(alloc) = tcx.eval_static_initializer(def_id) {
for &id in alloc.inner().provenance().ptrs().values() { for &id in alloc.inner().provenance().ptrs().values() {
collect_miri(tcx, id, &mut used_items); collect_alloc(tcx, id, &mut used_items);
} }
} }
...@@ -1331,8 +1331,8 @@ fn create_mono_items_for_default_impls<'tcx>( ...@@ -1331,8 +1331,8 @@ fn create_mono_items_for_default_impls<'tcx>(
} }
} }
/// Scans the miri alloc in order to find function calls, closures, and drop-glue. /// Scans the CTFE alloc in order to find function calls, closures, and drop-glue.
fn collect_miri<'tcx>(tcx: TyCtxt<'tcx>, alloc_id: AllocId, output: &mut MonoItems<'tcx>) { fn collect_alloc<'tcx>(tcx: TyCtxt<'tcx>, alloc_id: AllocId, output: &mut MonoItems<'tcx>) {
match tcx.global_alloc(alloc_id) { match tcx.global_alloc(alloc_id) {
GlobalAlloc::Static(def_id) => { GlobalAlloc::Static(def_id) => {
assert!(!tcx.is_thread_local_static(def_id)); assert!(!tcx.is_thread_local_static(def_id));
...@@ -1346,7 +1346,7 @@ fn collect_miri<'tcx>(tcx: TyCtxt<'tcx>, alloc_id: AllocId, output: &mut MonoIte ...@@ -1346,7 +1346,7 @@ fn collect_miri<'tcx>(tcx: TyCtxt<'tcx>, alloc_id: AllocId, output: &mut MonoIte
trace!("collecting {:?} with {:#?}", alloc_id, alloc); trace!("collecting {:?} with {:#?}", alloc_id, alloc);
for &inner in alloc.inner().provenance().ptrs().values() { for &inner in alloc.inner().provenance().ptrs().values() {
rustc_data_structures::stack::ensure_sufficient_stack(|| { rustc_data_structures::stack::ensure_sufficient_stack(|| {
collect_miri(tcx, inner, output); collect_alloc(tcx, inner, output);
}); });
} }
} }
...@@ -1358,7 +1358,7 @@ fn collect_miri<'tcx>(tcx: TyCtxt<'tcx>, alloc_id: AllocId, output: &mut MonoIte ...@@ -1358,7 +1358,7 @@ fn collect_miri<'tcx>(tcx: TyCtxt<'tcx>, alloc_id: AllocId, output: &mut MonoIte
} }
GlobalAlloc::VTable(ty, trait_ref) => { GlobalAlloc::VTable(ty, trait_ref) => {
let alloc_id = tcx.vtable_allocation((ty, trait_ref)); let alloc_id = tcx.vtable_allocation((ty, trait_ref));
collect_miri(tcx, alloc_id, output) collect_alloc(tcx, alloc_id, output)
} }
} }
} }
...@@ -1381,10 +1381,10 @@ fn collect_const_value<'tcx>( ...@@ -1381,10 +1381,10 @@ fn collect_const_value<'tcx>(
output: &mut MonoItems<'tcx>, output: &mut MonoItems<'tcx>,
) { ) {
match value { match value {
ConstValue::Scalar(Scalar::Ptr(ptr, _size)) => collect_miri(tcx, ptr.provenance, output), ConstValue::Scalar(Scalar::Ptr(ptr, _size)) => collect_alloc(tcx, ptr.provenance, output),
ConstValue::Slice { data: alloc, start: _, end: _ } | ConstValue::ByRef { alloc, .. } => { ConstValue::Slice { data: alloc, start: _, end: _ } | ConstValue::ByRef { alloc, .. } => {
for &id in alloc.inner().provenance().ptrs().values() { for &id in alloc.inner().provenance().ptrs().values() {
collect_miri(tcx, id, output); collect_alloc(tcx, id, output);
} }
} }
_ => {} _ => {}
......
...@@ -628,7 +628,8 @@ fn print_const(mut self, ct: ty::Const<'tcx>) -> Result<Self::Const, Self::Error ...@@ -628,7 +628,8 @@ fn print_const(mut self, ct: ty::Const<'tcx>) -> Result<Self::Const, Self::Error
valtree, ty valtree, ty
) )
}); });
let s = std::str::from_utf8(slice).expect("non utf8 str from miri"); let s = std::str::from_utf8(slice)
.expect("non utf8 str from MIR interpreter");
self.push("e"); self.push("e");
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册