// LLVM 17 realizes double panic is not possible and doesn't generate calls // to panic_cannot_unwind. //@ compile-flags: -O //@ ignore-debug: plain old debug assertions //@ needs-unwind #![crate_type = "lib"] #![feature(shrink_to)] // Make sure that `Vec::shrink_to_fit` never emits panics via `RawVec::shrink_to_fit`, // "Tried to shrink to a larger capacity", because the length is *always* <= capacity. // CHECK-LABEL: @shrink_to_fit #[no_mangle] pub fn shrink_to_fit(vec: &mut Vec) { // CHECK-NOT: panic vec.shrink_to_fit(); } // CHECK-LABEL: @issue71861 #[no_mangle] pub fn issue71861(vec: Vec) -> Box<[u32]> { // CHECK-NOT: panic vec.into_boxed_slice() } // CHECK-LABEL: @issue75636 #[no_mangle] pub fn issue75636<'a>(iter: &[&'a str]) -> Box<[&'a str]> { // CHECK-NOT: panic iter.iter().copied().collect() }