//@ compile-flags: -O //@ ignore-std-debug-assertions // (with debug assertions turned on, `assert_unchecked` generates a real assertion) #![crate_type = "lib"] #![feature(try_with_capacity)] // CHECK-LABEL: @with_capacity_does_not_grow1 #[no_mangle] pub fn with_capacity_does_not_grow1() -> Vec { let v = Vec::with_capacity(1234); // CHECK: call {{.*}}__rust_alloc( // CHECK-NOT: call {{.*}}__rust_realloc // CHECK-NOT: call {{.*}}capacity_overflow // CHECK-NOT: call {{.*}}finish_grow // CHECK-NOT: call {{.*}}reserve // CHECK-NOT: memcpy // CHECK-NOT: memset v } // CHECK-LABEL: @try_with_capacity_does_not_grow2 #[no_mangle] pub fn try_with_capacity_does_not_grow2() -> Option>> { let v = Vec::try_with_capacity(1234).ok()?; // CHECK: call {{.*}}__rust_alloc( // CHECK-NOT: call {{.*}}__rust_realloc // CHECK-NOT: call {{.*}}capacity_overflow // CHECK-NOT: call {{.*}}finish_grow // CHECK-NOT: call {{.*}}handle_alloc_error // CHECK-NOT: call {{.*}}reserve // CHECK-NOT: memcpy // CHECK-NOT: memset Some(v) }