summaryrefslogtreecommitdiffstats
path: root/src/test/codegen/c-variadic-opt.rs
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:19:13 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:19:13 +0000
commit218caa410aa38c29984be31a5229b9fa717560ee (patch)
treec54bd55eeb6e4c508940a30e94c0032fbd45d677 /src/test/codegen/c-variadic-opt.rs
parentReleasing progress-linux version 1.67.1+dfsg1-1~progress7.99u1. (diff)
downloadrustc-218caa410aa38c29984be31a5229b9fa717560ee.tar.xz
rustc-218caa410aa38c29984be31a5229b9fa717560ee.zip
Merging upstream version 1.68.2+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/test/codegen/c-variadic-opt.rs')
-rw-r--r--src/test/codegen/c-variadic-opt.rs30
1 files changed, 0 insertions, 30 deletions
diff --git a/src/test/codegen/c-variadic-opt.rs b/src/test/codegen/c-variadic-opt.rs
deleted file mode 100644
index 969dce80f..000000000
--- a/src/test/codegen/c-variadic-opt.rs
+++ /dev/null
@@ -1,30 +0,0 @@
-// compile-flags: -C opt-level=3
-
-#![crate_type = "lib"]
-#![feature(c_variadic)]
-#![no_std]
-use core::ffi::VaList;
-
-extern "C" {
- fn vprintf(fmt: *const i8, ap: VaList) -> i32;
-}
-
-// Ensure that `va_start` and `va_end` are properly injected even
-// when the "spoofed" `VaListImpl` is not used.
-#[no_mangle]
-pub unsafe extern "C" fn c_variadic_no_use(fmt: *const i8, mut ap: ...) -> i32 {
- // CHECK: call void @llvm.va_start
- vprintf(fmt, ap.as_va_list())
- // CHECK: call void @llvm.va_end
-}
-
-// Check that `VaListImpl::clone` gets inlined into a direct call to `llvm.va_copy`
-#[no_mangle]
-pub unsafe extern "C" fn c_variadic_clone(fmt: *const i8, mut ap: ...) -> i32 {
- // CHECK: call void @llvm.va_start
- let mut ap2 = ap.clone();
- // CHECK: call void @llvm.va_copy
- let res = vprintf(fmt, ap2.as_va_list());
- res
- // CHECK: call void @llvm.va_end
-}