许杰友 Jieyou Xu (Joe) | 6e48b96 | 2024-02-22 12:10:29 +0000 | [diff] [blame] | 1 | //@ compile-flags: -C opt-level=3 |
许杰友 Jieyou Xu (Joe) | 6e48b96 | 2024-02-22 12:10:29 +0000 | [diff] [blame] | 2 | //@ min-llvm-version: 17.0.2 |
Erik Desjardins | 31ee8b1 | 2022-03-10 17:10:36 -0500 | [diff] [blame] | 3 | #![crate_type = "lib"] |
| 4 | |
| 5 | // Regression test for issue 97217 (the following should result in no allocations) |
| 6 | |
| 7 | // CHECK-LABEL: @issue97217 |
| 8 | #[no_mangle] |
| 9 | pub fn issue97217() -> i32 { |
| 10 | // drop_in_place should be inlined and never appear |
| 11 | // CHECK-NOT: drop_in_place |
| 12 | |
| 13 | // __rust_alloc should be optimized out |
| 14 | // CHECK-NOT: __rust_alloc |
| 15 | |
| 16 | let v1 = vec![5, 6, 7]; |
| 17 | let v1_iter = v1.iter(); |
| 18 | let total: i32 = v1_iter.sum(); |
Nicholas Nethercote | 72800d3 | 2024-05-29 14:11:20 +1000 | [diff] [blame] | 19 | println!("{}", total); |
Erik Desjardins | 31ee8b1 | 2022-03-10 17:10:36 -0500 | [diff] [blame] | 20 | total |
| 21 | } |