Skip to content

Commit 4cfb145

Browse files
author
Ariel Ben-Yehuda
committed
fix issues
1 parent f5b1ba6 commit 4cfb145

File tree

3 files changed

+9
-2
lines changed

3 files changed

+9
-2
lines changed

Diff for: src/librustc_driver/driver.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -980,7 +980,8 @@ pub fn phase_3_run_analysis_passes<'tcx, F, R>(sess: &'tcx Session,
980980
passes.push_pass(box mir::transform::simplify_cfg::SimplifyCfg::new("initial"));
981981
passes.push_pass(box mir::transform::qualify_consts::QualifyAndPromoteConstants);
982982
passes.push_pass(box mir::transform::type_check::TypeckMir);
983-
passes.push_pass(box mir::transform::simplify_branches::SimplifyBranches::new("initial"));
983+
passes.push_pass(
984+
box mir::transform::simplify_branches::SimplifyBranches::new("initial"));
984985
passes.push_pass(box mir::transform::simplify_cfg::SimplifyCfg::new("qualify-consts"));
985986
// And run everything.
986987
passes.run_passes(tcx, &mut mir_map);

Diff for: src/librustc_mir/build/cfg.rs

+4-1
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,11 @@ impl<'tcx> CFG<'tcx> {
7878
block: BasicBlock,
7979
source_info: SourceInfo,
8080
kind: TerminatorKind<'tcx>) {
81+
debug!("terminating block {:?} <- {:?}", block, kind);
8182
debug_assert!(self.block_data(block).terminator.is_none(),
82-
"terminate: block {:?} already has a terminator set", block);
83+
"terminate: block {:?}={:?} already has a terminator set",
84+
block,
85+
self.block_data(block));
8386
self.block_data_mut(block).terminator = Some(Terminator {
8487
source_info: source_info,
8588
kind: kind,

Diff for: src/librustc_mir/build/matches/mod.rs

+3
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,9 @@ impl<'a, 'gcx, 'tcx> Builder<'a, 'gcx, 'tcx> {
8787
// can't be reached - terminate them with an `unreachable`.
8888
let source_info = self.source_info(span);
8989

90+
let mut otherwise = otherwise;
91+
otherwise.sort();
92+
otherwise.dedup(); // variant switches can introduce duplicate target blocks
9093
for block in otherwise {
9194
self.cfg.terminate(block, source_info, TerminatorKind::Unreachable);
9295
}

0 commit comments

Comments
 (0)