test(std): Add codegen test for array::from_fn optimization
This commit adds a new test file 'array-from_fn.rs' to the codegen test suite. The test checks the behavior of std::array::from_fn under different optimization levels: 1. At opt-level=0 (debug build), it verifies that the core::array::Guard is present in the generated code. 2. At opt-level=s (size optimization), it ensures that the Guard is optimized out. This test helps ensure that the compiler correctly optimizes array::from_fn calls in release builds while maintaining safety checks in debug builds.
This commit is contained in:
parent
bca0c5f2a9
commit
3dc083dfd8
13
tests/codegen/array-from_fn.rs
Normal file
13
tests/codegen/array-from_fn.rs
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
//@ revisions: NORMAL OPT
|
||||||
|
//@ [NORMAL] compile-flags: -C opt-level=0 -C debuginfo=2
|
||||||
|
//@ [OPT] compile-flags: -C opt-level=s -C debuginfo=0
|
||||||
|
|
||||||
|
#![crate_type = "lib"]
|
||||||
|
#![feature(array_from_fn)]
|
||||||
|
|
||||||
|
#[no_mangle]
|
||||||
|
pub fn iota() -> [u8; 16] {
|
||||||
|
// OPT-NOT: core..array..Guard
|
||||||
|
// NORMAL: core..array..Guard
|
||||||
|
std::array::from_fn(|i| i as _)
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user