diff options
| author | bors <bors@rust-lang.org> | 2023-06-19 08:10:07 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2023-06-19 08:10:07 +0000 |
| commit | f7690454117d30faff4f207cd5a002a4570ed45d (patch) | |
| tree | 8fc64e3b204fb88be650a82c88c6dce7229f657a /compiler/rustc_mir_transform/src | |
| parent | 5f81d83ddef72816c824909d9f77eb7c3306d496 (diff) | |
| parent | 6ea503564802813de4f89b8e2556d59c347aefc9 (diff) | |
| download | rust-f7690454117d30faff4f207cd5a002a4570ed45d.tar.gz rust-f7690454117d30faff4f207cd5a002a4570ed45d.zip | |
Auto merge of #2935 - RalfJung:rustup, r=RalfJung
Rustup
Diffstat (limited to 'compiler/rustc_mir_transform/src')
| -rw-r--r-- | compiler/rustc_mir_transform/src/check_alignment.rs | 10 | ||||
| -rw-r--r-- | compiler/rustc_mir_transform/src/const_prop.rs | 4 | ||||
| -rw-r--r-- | compiler/rustc_mir_transform/src/prettify.rs | 2 |
3 files changed, 7 insertions, 9 deletions
diff --git a/compiler/rustc_mir_transform/src/check_alignment.rs b/compiler/rustc_mir_transform/src/check_alignment.rs index fd349c07040..856327e6ce6 100644 --- a/compiler/rustc_mir_transform/src/check_alignment.rs +++ b/compiler/rustc_mir_transform/src/check_alignment.rs @@ -9,7 +9,6 @@ use rustc_middle::mir::{ }; use rustc_middle::ty::{Ty, TyCtxt, TypeAndMut}; use rustc_session::Session; -use rustc_target::spec::PanicStrategy; pub struct CheckAlignment; @@ -241,11 +240,10 @@ fn insert_alignment_check<'tcx>( required: Operand::Copy(alignment), found: Operand::Copy(addr), }), - unwind: if tcx.sess.panic_strategy() == PanicStrategy::Unwind { - UnwindAction::Terminate - } else { - UnwindAction::Unreachable - }, + // The panic symbol that this calls is #[rustc_nounwind]. We never want to insert an + // unwind into unsafe code, because unwinding could make a failing UB check turn into + // much worse UB when we start unwinding. + unwind: UnwindAction::Unreachable, }, }); } diff --git a/compiler/rustc_mir_transform/src/const_prop.rs b/compiler/rustc_mir_transform/src/const_prop.rs index 1d43dbda0aa..2f2c7357b00 100644 --- a/compiler/rustc_mir_transform/src/const_prop.rs +++ b/compiler/rustc_mir_transform/src/const_prop.rs @@ -118,8 +118,8 @@ impl<'tcx> MirPass<'tcx> for ConstProp { // Traverse the body in reverse post-order, to ensure that `FullConstProp` locals are // assigned before being read. - let postorder = body.basic_blocks.postorder().to_vec(); - for bb in postorder.into_iter().rev() { + let rpo = body.basic_blocks.reverse_postorder().to_vec(); + for bb in rpo { let data = &mut body.basic_blocks.as_mut_preserves_cfg()[bb]; optimization_finder.visit_basic_block_data(bb, data); } diff --git a/compiler/rustc_mir_transform/src/prettify.rs b/compiler/rustc_mir_transform/src/prettify.rs index 6f46974ea00..745fa30841c 100644 --- a/compiler/rustc_mir_transform/src/prettify.rs +++ b/compiler/rustc_mir_transform/src/prettify.rs @@ -24,7 +24,7 @@ impl<'tcx> MirPass<'tcx> for ReorderBasicBlocks { fn run_pass(&self, tcx: TyCtxt<'tcx>, body: &mut Body<'tcx>) { let rpo: IndexVec<BasicBlock, BasicBlock> = - body.basic_blocks.postorder().iter().copied().rev().collect(); + body.basic_blocks.reverse_postorder().iter().copied().collect(); if rpo.iter().is_sorted() { return; } |
