diff options
| author | Scott McMurray <scottmcm@users.noreply.github.com> | 2024-12-13 02:00:20 -0800 |
|---|---|---|
| committer | Scott McMurray <scottmcm@users.noreply.github.com> | 2024-12-13 02:00:20 -0800 |
| commit | 38249be509101e87ea4ac10951b1b4ce554f1cc0 (patch) | |
| tree | 9e090fcb0ebad1290811af2cc560604c3cdbb80d /compiler/rustc_mir_build/src | |
| parent | 612adbb6bf88ecf549fb93cb1f4edcf793bca88e (diff) | |
| download | rust-38249be509101e87ea4ac10951b1b4ce554f1cc0.tar.gz rust-38249be509101e87ea4ac10951b1b4ce554f1cc0.zip | |
Don't retag the `PtrMetadata(&raw const *_n)` in slice indexing
Diffstat (limited to 'compiler/rustc_mir_build/src')
| -rw-r--r-- | compiler/rustc_mir_build/src/build/expr/as_place.rs | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/compiler/rustc_mir_build/src/build/expr/as_place.rs b/compiler/rustc_mir_build/src/build/expr/as_place.rs index 9f377f792ef..70a74910a68 100644 --- a/compiler/rustc_mir_build/src/build/expr/as_place.rs +++ b/compiler/rustc_mir_build/src/build/expr/as_place.rs @@ -11,7 +11,7 @@ use rustc_middle::mir::*; use rustc_middle::thir::*; use rustc_middle::ty::{self, AdtDef, CanonicalUserTypeAnnotation, Ty, Variance}; use rustc_middle::{bug, span_bug}; -use rustc_span::Span; +use rustc_span::{DesugaringKind, Span}; use tracing::{debug, instrument, trace}; use crate::build::ForGuard::{OutsideGuard, RefWithinGuard}; @@ -668,11 +668,20 @@ impl<'a, 'tcx> Builder<'a, 'tcx> { // the MIR we're building here needs to pass NLL later. Operand::Copy(Place::from(place.local)) } else { + let len_span = self.tcx.with_stable_hashing_context(|hcx| { + let span = source_info.span; + span.mark_with_reason( + None, + DesugaringKind::IndexBoundsCheckReborrow, + span.edition(), + hcx, + ) + }); let ptr_ty = Ty::new_imm_ptr(self.tcx, place_ty); let slice_ptr = self.temp(ptr_ty, span); self.cfg.push_assign( block, - source_info, + SourceInfo { span: len_span, ..source_info }, slice_ptr, Rvalue::RawPtr(Mutability::Not, place), ); |
