about summary refs log tree commit diff
path: root/compiler/rustc_mir_transform/src
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2025-09-07 20:27:43 +0000
committerbors <bors@rust-lang.org>2025-09-07 20:27:43 +0000
commit12eb345e5593a10e61b4aef766076c8bd552fea6 (patch)
tree6d0b3872c9b314438868f0ee31bf22b8ff2be7ee /compiler/rustc_mir_transform/src
parent23718020b12d7e5a54f82a19910e8356ee719667 (diff)
parent36557d1046da672559bda949afa8256add67058b (diff)
downloadrust-12eb345e5593a10e61b4aef766076c8bd552fea6.tar.gz
rust-12eb345e5593a10e61b4aef766076c8bd552fea6.zip
Auto merge of #146304 - matthiaskrgr:rollup-69hs07h, r=matthiaskrgr
Rollup of 4 pull requests

Successful merges:

 - rust-lang/rust#146170 (fix: offline rustdoc html missing favicon)
 - rust-lang/rust#146209 (Misc LTO cleanups)
 - rust-lang/rust#146269 (feat(std): emulate flock for solaris via fcntl)
 - rust-lang/rust#146297 (Introduce PlaceContext::may_observe_address.)

r? `@ghost`
`@rustbot` modify labels: rollup
Diffstat (limited to 'compiler/rustc_mir_transform/src')
-rw-r--r--compiler/rustc_mir_transform/src/ssa.rs4
1 files changed, 3 insertions, 1 deletions
diff --git a/compiler/rustc_mir_transform/src/ssa.rs b/compiler/rustc_mir_transform/src/ssa.rs
index cd9a7f4a39d..73c249a3c8c 100644
--- a/compiler/rustc_mir_transform/src/ssa.rs
+++ b/compiler/rustc_mir_transform/src/ssa.rs
@@ -225,6 +225,9 @@ impl SsaVisitor<'_, '_> {
 
 impl<'tcx> Visitor<'tcx> for SsaVisitor<'_, 'tcx> {
     fn visit_local(&mut self, local: Local, ctxt: PlaceContext, loc: Location) {
+        if ctxt.may_observe_address() {
+            self.borrowed_locals.insert(local);
+        }
         match ctxt {
             PlaceContext::MutatingUse(MutatingUseContext::Projection)
             | PlaceContext::NonMutatingUse(NonMutatingUseContext::Projection) => bug!(),
@@ -237,7 +240,6 @@ impl<'tcx> Visitor<'tcx> for SsaVisitor<'_, 'tcx> {
             PlaceContext::NonMutatingUse(
                 NonMutatingUseContext::SharedBorrow | NonMutatingUseContext::FakeBorrow,
             ) => {
-                self.borrowed_locals.insert(local);
                 self.check_dominates(local, loc);
                 self.direct_uses[local] += 1;
             }