diff options
| author | dianqk <dianqk@dianqk.net> | 2025-03-24 16:55:24 +0800 |
|---|---|---|
| committer | dianqk <dianqk@dianqk.net> | 2025-04-02 19:59:26 +0800 |
| commit | fefb0dba824d7a98bbceba63e434279ff7377a45 (patch) | |
| tree | b667f19bb469daa6ce3eb0177aa4477749648551 | |
| parent | 7e0463fe93b7fec40e564fb1312296ed608ce837 (diff) | |
| download | rust-fefb0dba824d7a98bbceba63e434279ff7377a45.tar.gz rust-fefb0dba824d7a98bbceba63e434279ff7377a45.zip | |
Partially revert "Do not unify dereferences in GVN."
This reverts commit 917dd826286bd85e26310e4db4a125d4038c277e.
| -rw-r--r-- | compiler/rustc_mir_transform/src/gvn.rs | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/compiler/rustc_mir_transform/src/gvn.rs b/compiler/rustc_mir_transform/src/gvn.rs index 944c21eab40..a93fdff5817 100644 --- a/compiler/rustc_mir_transform/src/gvn.rs +++ b/compiler/rustc_mir_transform/src/gvn.rs @@ -642,9 +642,7 @@ impl<'body, 'tcx> VnState<'body, 'tcx> { let proj = match proj { ProjectionElem::Deref => { let ty = place.ty(self.local_decls, self.tcx).ty; - // unsound: https://github.com/rust-lang/rust/issues/130853 - if self.tcx.sess.opts.unstable_opts.unsound_mir_opts - && let Some(Mutability::Not) = ty.ref_mutability() + if let Some(Mutability::Not) = ty.ref_mutability() && let Some(pointee_ty) = ty.builtin_deref(true) && pointee_ty.is_freeze(self.tcx, self.typing_env()) { |
