about summary refs log tree commit diff
path: root/compiler/rustc_mir_transform/src/instsimplify.rs
diff options
context:
space:
mode:
authorScott McMurray <scottmcm@users.noreply.github.com>2024-05-30 22:05:30 -0700
committerScott McMurray <scottmcm@users.noreply.github.com>2024-05-30 22:05:30 -0700
commit4b96e44ebbf42dc8b6f3e5ac4894739adc17d826 (patch)
treeec58b6cafc1c5b5cf511229e5a2be61a28a74c8c /compiler/rustc_mir_transform/src/instsimplify.rs
parent366da30d554719e7490950aeea5d3f3a5927e313 (diff)
downloadrust-4b96e44ebbf42dc8b6f3e5ac4894739adc17d826.tar.gz
rust-4b96e44ebbf42dc8b6f3e5ac4894739adc17d826.zip
Also InstSimplify `&raw*`
We do this for `&*` and `&mut*` already; might as well do it for raw pointers too.
Diffstat (limited to 'compiler/rustc_mir_transform/src/instsimplify.rs')
-rw-r--r--compiler/rustc_mir_transform/src/instsimplify.rs2
1 files changed, 1 insertions, 1 deletions
diff --git a/compiler/rustc_mir_transform/src/instsimplify.rs b/compiler/rustc_mir_transform/src/instsimplify.rs
index a54332b6f25..40db3e38fd3 100644
--- a/compiler/rustc_mir_transform/src/instsimplify.rs
+++ b/compiler/rustc_mir_transform/src/instsimplify.rs
@@ -123,7 +123,7 @@ impl<'tcx> InstSimplifyContext<'tcx, '_> {
 
     /// Transform `&(*a)` ==> `a`.
     fn simplify_ref_deref(&self, source_info: &SourceInfo, rvalue: &mut Rvalue<'tcx>) {
-        if let Rvalue::Ref(_, _, place) = rvalue {
+        if let Rvalue::Ref(_, _, place) | Rvalue::AddressOf(_, place) = rvalue {
             if let Some((base, ProjectionElem::Deref)) = place.as_ref().last_projection() {
                 if rvalue.ty(self.local_decls, self.tcx) != base.ty(self.local_decls, self.tcx).ty {
                     return;