diff options
| author | Ariel Ben-Yehuda <ariel.byd@gmail.com> | 2017-05-18 23:58:39 +0300 |
|---|---|---|
| committer | Ariel Ben-Yehuda <ariel.byd@gmail.com> | 2017-05-28 10:43:25 +0300 |
| commit | 6548aefdeb425170cb40f7160cceedf14c97a433 (patch) | |
| tree | 187450aab7a72f0a2854cc8645327b4f1d3e6c1c /src | |
| parent | 55767702ec0f4e710b711815381897b3304f3785 (diff) | |
| download | rust-6548aefdeb425170cb40f7160cceedf14c97a433.tar.gz rust-6548aefdeb425170cb40f7160cceedf14c97a433.zip | |
fix loops in unwind code in MSVC
I'm not sure how well this works, but it's worth a try.
Diffstat (limited to 'src')
| -rw-r--r-- | src/librustc_trans/mir/analyze.rs | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/librustc_trans/mir/analyze.rs b/src/librustc_trans/mir/analyze.rs index 96ef26d3f6f..0f95668302c 100644 --- a/src/librustc_trans/mir/analyze.rs +++ b/src/librustc_trans/mir/analyze.rs @@ -260,7 +260,9 @@ pub fn cleanup_kinds<'a, 'tcx>(mir: &mir::Mir<'tcx>) -> IndexVec<mir::BasicBlock result[succ] = CleanupKind::Internal { funclet: funclet }; } CleanupKind::Funclet => { - set_successor(funclet, succ); + if funclet != succ { + set_successor(funclet, succ); + } } CleanupKind::Internal { funclet: succ_funclet } => { if funclet != succ_funclet { |
