diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2023-04-13 21:58:39 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-04-13 21:58:39 +0200 |
| commit | c140e25ec8b5da3062ae2cbdcc558b682bc8abd2 (patch) | |
| tree | 5702abc84e30617a4eab712db6ecd65331b79870 /compiler/rustc_mir_transform | |
| parent | 759d4e86514de200a6d335518e4e912816f12477 (diff) | |
| parent | 4061eb589797ab4498f00ba0be337e4a1355cb49 (diff) | |
| download | rust-c140e25ec8b5da3062ae2cbdcc558b682bc8abd2.tar.gz rust-c140e25ec8b5da3062ae2cbdcc558b682bc8abd2.zip | |
Rollup merge of #110283 - saethlin:check-panics-before-alignment, r=bjorn3
Only emit alignment checks if we have a panic_impl Fixes https://github.com/rust-lang/rust/issues/109996 r? `@bjorn3` because you commented that this situation could impact you as well
Diffstat (limited to 'compiler/rustc_mir_transform')
| -rw-r--r-- | compiler/rustc_mir_transform/src/check_alignment.rs | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/compiler/rustc_mir_transform/src/check_alignment.rs b/compiler/rustc_mir_transform/src/check_alignment.rs index 8086a4557b7..c76dc56065c 100644 --- a/compiler/rustc_mir_transform/src/check_alignment.rs +++ b/compiler/rustc_mir_transform/src/check_alignment.rs @@ -1,5 +1,6 @@ use crate::MirPass; use rustc_hir::def_id::DefId; +use rustc_hir::lang_items::LangItem; use rustc_index::vec::IndexVec; use rustc_middle::mir::*; use rustc_middle::mir::{ @@ -17,6 +18,12 @@ impl<'tcx> MirPass<'tcx> for CheckAlignment { } fn run_pass(&self, tcx: TyCtxt<'tcx>, body: &mut Body<'tcx>) { + // This pass emits new panics. If for whatever reason we do not have a panic + // implementation, running this pass may cause otherwise-valid code to not compile. + if tcx.lang_items().get(LangItem::PanicImpl).is_none() { + return; + } + let basic_blocks = body.basic_blocks.as_mut(); let local_decls = &mut body.local_decls; |
