about summary refs log tree commit diff
path: root/tests/ui/explicit-tail-calls/c-variadic.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/explicit-tail-calls/c-variadic.rs')
-rw-r--r--tests/ui/explicit-tail-calls/c-variadic.rs14
1 files changed, 14 insertions, 0 deletions
diff --git a/tests/ui/explicit-tail-calls/c-variadic.rs b/tests/ui/explicit-tail-calls/c-variadic.rs
new file mode 100644
index 00000000000..e6eebe4228e
--- /dev/null
+++ b/tests/ui/explicit-tail-calls/c-variadic.rs
@@ -0,0 +1,14 @@
+#![expect(incomplete_features)]
+#![feature(c_variadic, explicit_tail_calls)]
+#![allow(unused)]
+
+unsafe extern "C" fn foo(mut ap: ...) -> u32 {
+    ap.arg::<u32>()
+}
+
+extern "C" fn bar() -> u32 {
+    unsafe { become foo(1, 2, 3) }
+    //~^ ERROR c-variadic functions can't be tail-called
+}
+
+fn main() {}