about summary refs log tree commit diff
path: root/compiler/rustc_mir_build/src
diff options
context:
space:
mode:
authorScott McMurray <scottmcm@users.noreply.github.com>2024-12-13 02:00:20 -0800
committerScott McMurray <scottmcm@users.noreply.github.com>2024-12-13 02:00:20 -0800
commit38249be509101e87ea4ac10951b1b4ce554f1cc0 (patch)
tree9e090fcb0ebad1290811af2cc560604c3cdbb80d /compiler/rustc_mir_build/src
parent612adbb6bf88ecf549fb93cb1f4edcf793bca88e (diff)
downloadrust-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.rs13
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),
                     );