diff options
Diffstat (limited to 'tests/codegen-llvm/vec_pop_push_noop.rs')
| -rw-r--r-- | tests/codegen-llvm/vec_pop_push_noop.rs | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/tests/codegen-llvm/vec_pop_push_noop.rs b/tests/codegen-llvm/vec_pop_push_noop.rs new file mode 100644 index 00000000000..3e375219fe0 --- /dev/null +++ b/tests/codegen-llvm/vec_pop_push_noop.rs @@ -0,0 +1,24 @@ +//@ compile-flags: -Copt-level=3 + +#![crate_type = "lib"] + +#[no_mangle] +// CHECK-LABEL: @noop( +pub fn noop(v: &mut Vec<u8>) { + // CHECK-NOT: grow_one + // CHECK-NOT: call + // CHECK: tail call void @llvm.assume + // CHECK-NOT: grow_one + // CHECK-NOT: call + // CHECK: {{ret|[}]}} + if let Some(x) = v.pop() { + v.push(x) + } +} + +#[no_mangle] +// CHECK-LABEL: @push_byte( +pub fn push_byte(v: &mut Vec<u8>) { + // CHECK: call {{.*}}grow_one + v.push(3); +} |
