std: Ensure OOM is classified as nounwind
OOM can't unwind today, and historically it's been optimized as if it can't unwind. This accidentally regressed with recent changes to the OOM handler, so this commit adds in a codegen test to assert that everything gets optimized away after the OOM function is approrpiately classified as nounwind Closes #50925
This commit is contained in:
parent
a76bff86e6
commit
f67453729c
4 changed files with 46 additions and 16 deletions
21
src/test/codegen/vec-iter-collect-len.rs
Normal file
21
src/test/codegen/vec-iter-collect-len.rs
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
// Copyright 2017 The Rust Project Developers. See the COPYRIGHT
|
||||
// file at the top-level directory of this distribution and at
|
||||
// http://rust-lang.org/COPYRIGHT.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
// no-system-llvm
|
||||
// compile-flags: -O
|
||||
#![crate_type="lib"]
|
||||
|
||||
#[no_mangle]
|
||||
pub fn get_len() -> usize {
|
||||
// CHECK-LABEL: @get_len
|
||||
// CHECK-NOT: call
|
||||
// CHECK-NOT: invoke
|
||||
[1, 2, 3].iter().collect::<Vec<_>>().len()
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue