]> git.lizzy.rs Git - rust.git/blob - tests/ui/codegen/issue-88043-bb-does-not-have-terminator.rs
Auto merge of #105716 - chriswailes:ndk-update-redux, r=pietroalbini
[rust.git] / tests / ui / codegen / issue-88043-bb-does-not-have-terminator.rs
1 // build-pass
2 // compile-flags: -Copt-level=0
3
4 // Regression test for #88043: LLVM crash when the RemoveZsts mir-opt pass is enabled.
5 // We should not see the error:
6 // `Basic Block in function '_ZN4main10take_until17h0067b8a660429bc9E' does not have terminator!`
7
8 fn bump() -> Option<usize> {
9     unreachable!()
10 }
11
12 fn take_until(terminate: impl Fn() -> bool) {
13     loop {
14         if terminate() {
15             return;
16         } else {
17             bump();
18         }
19     }
20 }
21
22 // CHECK-LABEL: @main
23 fn main() {
24     take_until(|| true);
25     f(None);
26 }
27
28 fn f(_a: Option<String>) -> Option<u32> {
29     loop {
30         g();
31         ()
32     }
33 }
34
35 fn g() -> Option<u32> { None }