diff options
| author | Ralf Jung <post@ralfj.de> | 2021-07-12 18:22:15 +0200 |
|---|---|---|
| committer | Ralf Jung <post@ralfj.de> | 2021-07-14 18:17:46 +0200 |
| commit | d4f7dd670226a4235ea4cf900c14eb9c6a536843 (patch) | |
| tree | fb5b4287bd53cee0633df3b455ebffa753be6b06 /compiler/rustc_mir/src/monomorphize | |
| parent | 5aff6dd07a562a2cba3c57fc3460a72acb6bef46 (diff) | |
CTFE/Miri engine Pointer type overhaul: make Scalar-to-Pointer conversion infallible
This resolves all the problems we had around "normalizing" the representation of a Scalar in case it carries a Pointer value: we can just use Pointer if we want to have a value taht we are sure is already normalized.
Diffstat (limited to 'compiler/rustc_mir/src/monomorphize')
| -rw-r--r-- | compiler/rustc_mir/src/monomorphize/collector.rs | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/compiler/rustc_mir/src/monomorphize/collector.rs b/compiler/rustc_mir/src/monomorphize/collector.rs index ced35d47b11..548518a85e6 100644 --- a/compiler/rustc_mir/src/monomorphize/collector.rs +++ b/compiler/rustc_mir/src/monomorphize/collector.rs @@ -403,7 +403,7 @@ fn collect_items_rec<'tcx>( recursion_depth_reset = None; if let Ok(alloc) = tcx.eval_static_initializer(def_id) { - for &((), id) in alloc.relocations().values() { + for &id in alloc.relocations().values() { collect_miri(tcx, id, &mut neighbors); } } @@ -1369,7 +1369,7 @@ fn collect_miri<'tcx>( } GlobalAlloc::Memory(alloc) => { trace!("collecting {:?} with {:#?}", alloc_id, alloc); - for &((), inner) in alloc.relocations().values() { + for &inner in alloc.relocations().values() { rustc_data_structures::stack::ensure_sufficient_stack(|| { collect_miri(tcx, inner, output); }); @@ -1402,9 +1402,9 @@ fn collect_const_value<'tcx>( output: &mut Vec<Spanned<MonoItem<'tcx>>>, ) { match value { - ConstValue::Scalar(Scalar::Ptr(ptr)) => collect_miri(tcx, ptr.alloc_id, output), + ConstValue::Scalar(Scalar::Ptr(ptr)) => collect_miri(tcx, ptr.provenance, output), ConstValue::Slice { data: alloc, start: _, end: _ } | ConstValue::ByRef { alloc, .. } => { - for &((), id) in alloc.relocations().values() { + for &id in alloc.relocations().values() { collect_miri(tcx, id, output); } } |
