diff options
| author | Scott McMurray <scottmcm@users.noreply.github.com> | 2024-05-30 22:05:30 -0700 |
|---|---|---|
| committer | Scott McMurray <scottmcm@users.noreply.github.com> | 2024-05-30 22:05:30 -0700 |
| commit | 4b96e44ebbf42dc8b6f3e5ac4894739adc17d826 (patch) | |
| tree | ec58b6cafc1c5b5cf511229e5a2be61a28a74c8c /compiler/rustc_mir_transform/src/instsimplify.rs | |
| parent | 366da30d554719e7490950aeea5d3f3a5927e313 (diff) | |
| download | rust-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.rs | 2 |
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; |
