Only emit alignment checks if we have a panic_impl

This commit is contained in:
Ben Kimock 2023-04-13 09:20:36 -04:00
parent 194a0bb5d6
commit 4061eb5897
2 changed files with 24 additions and 0 deletions

View file

@ -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;