diff options
| author | dianqk <dianqk@dianqk.net> | 2025-07-10 21:20:54 +0800 |
|---|---|---|
| committer | dianqk <dianqk@dianqk.net> | 2025-10-02 14:55:50 +0800 |
| commit | cc93132ae4f5477297ecddb0c07d2e8c74075f0c (patch) | |
| tree | 7ae08a515e4ff846cdcbaa67b557a40fb169500c /compiler/rustc_middle/src | |
| parent | 571412f8190089c36758031fe09fc0ece59be6b7 (diff) | |
| download | rust-cc93132ae4f5477297ecddb0c07d2e8c74075f0c.tar.gz rust-cc93132ae4f5477297ecddb0c07d2e8c74075f0c.zip | |
simplifycfg: Preserve debuginfos when merging bbs
Diffstat (limited to 'compiler/rustc_middle/src')
| -rw-r--r-- | compiler/rustc_middle/src/mir/terminator.rs | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/compiler/rustc_middle/src/mir/terminator.rs b/compiler/rustc_middle/src/mir/terminator.rs index 4034a3a06e9..4249914346c 100644 --- a/compiler/rustc_middle/src/mir/terminator.rs +++ b/compiler/rustc_middle/src/mir/terminator.rs @@ -444,6 +444,14 @@ impl<'tcx> Terminator<'tcx> { self.kind.successors() } + /// Return `Some` if all successors are identical. + #[inline] + pub fn identical_successor(&self) -> Option<BasicBlock> { + let mut successors = self.successors(); + let first_succ = successors.next()?; + if successors.all(|succ| first_succ == succ) { Some(first_succ) } else { None } + } + #[inline] pub fn successors_mut<'a>(&'a mut self, f: impl FnMut(&'a mut BasicBlock)) { self.kind.successors_mut(f) |
