about summary refs log tree commit diff
path: root/tests/codegen/cffi/c-variadic-opt.rs
diff options
context:
space:
mode:
authorGuillaume Gomez <guillaume1.gomez@gmail.com>2025-07-21 14:34:12 +0200
committerGuillaume Gomez <guillaume1.gomez@gmail.com>2025-07-22 14:28:48 +0200
commita27f3e3fd1e4d16160f8885b6b06665b5319f56c (patch)
treeb033935392cbadf6f85d2dbddf433a88e323aeeb /tests/codegen/cffi/c-variadic-opt.rs
parented93c1783b404d728d4809973a0550eb33cd293f (diff)
downloadrust-a27f3e3fd1e4d16160f8885b6b06665b5319f56c.tar.gz
rust-a27f3e3fd1e4d16160f8885b6b06665b5319f56c.zip
Rename `tests/codegen` into `tests/codegen-llvm`
Diffstat (limited to 'tests/codegen/cffi/c-variadic-opt.rs')
-rw-r--r--tests/codegen/cffi/c-variadic-opt.rs30
1 files changed, 0 insertions, 30 deletions
diff --git a/tests/codegen/cffi/c-variadic-opt.rs b/tests/codegen/cffi/c-variadic-opt.rs
deleted file mode 100644
index 7e544ee7f37..00000000000
--- a/tests/codegen/cffi/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
-}