rust/tests/ui/c-variadic
Stuart Cook 60b2068eed
Rollup merge of #148770 - folkertdev:naked-c-variadic, r=workingjubilee
implement `feature(c_variadic_naked_functions)`

tracking issue: https://github.com/rust-lang/rust/issues/148767

[#t-lang > C-variadic naked functions](https://rust-lang.zulipchat.com/#narrow/channel/213817-t-lang/topic/C-variadic.20naked.20functions/with/554593886)

This feature allows naked c-variadic function definitions with any ABI that is supported for foreign c-variadic functions.

```rust
#![feature(c_variadic, c_variadic_naked_functions)]

#[unsafe(naked)]
unsafe extern "win64" fn variadic_win64(_: u32, _: ...) -> u32 {
    core::arch::naked_asm!(
        r#"
        push    rax
        mov     qword ptr [rsp + 40], r9
        mov     qword ptr [rsp + 24], rdx
        mov     qword ptr [rsp + 32], r8
        lea     rax, [rsp + 40]
        mov     qword ptr [rsp], rax
        lea     eax, [rdx + rcx]
        add     eax, r8d
        pop     rcx
        ret
    "#,
    )
}
```

r? ````@workingjubilee````
2025-11-12 12:26:40 +11:00
..
fn-item-diagnostic-issue-69232.rs bless the tests and add a new one 2024-11-29 00:45:14 +01:00
fn-item-diagnostic-issue-69232.stderr bless the tests and add a new one 2024-11-29 00:45:14 +01:00
inherent-method.rs Ignore more failing ui tests for GCC backend 2025-09-26 15:33:48 +02:00
issue-32201.rs bless the tests and add a new one 2024-11-29 00:45:14 +01:00
issue-32201.stderr bless the tests and add a new one 2024-11-29 00:45:14 +01:00
issue-86053-1.rs c_variadic: Add future-incompatibility warning for ... arguments without a pattern outside of extern blocks 2025-11-10 14:33:56 +01:00
issue-86053-1.stderr c_variadic: Add future-incompatibility warning for ... arguments without a pattern outside of extern blocks 2025-11-10 14:33:56 +01:00
issue-86053-2.rs c_variadic: Add future-incompatibility warning for ... arguments without a pattern outside of extern blocks 2025-11-10 14:33:56 +01:00
issue-86053-2.stderr c_variadic: Add future-incompatibility warning for ... arguments without a pattern outside of extern blocks 2025-11-10 14:33:56 +01:00
naked-invalid.rs add feature(c_variadic_naked_functions) 2025-11-09 22:07:11 +01:00
naked-invalid.stderr add feature(c_variadic_naked_functions) 2025-11-09 22:07:11 +01:00
naked.rs add feature(c_variadic_naked_functions) 2025-11-09 22:07:11 +01:00
no-closure.rs Detect top-level ... in argument type 2025-09-16 11:38:08 -07:00
no-closure.stderr Detect top-level ... in argument type 2025-09-16 11:38:08 -07:00
not-async.rs c_variadic: Add future-incompatibility warning for ... arguments without a pattern outside of extern blocks 2025-11-10 14:33:56 +01:00
not-async.stderr c_variadic: Add future-incompatibility warning for ... arguments without a pattern outside of extern blocks 2025-11-10 14:33:56 +01:00
not-dyn-compatible.rs c-variadic: allow trait methods to be c-variadic 2025-09-11 10:27:28 +02:00
not-dyn-compatible.stderr c-variadic: allow trait methods to be c-variadic 2025-09-11 10:27:28 +02:00
parse-errors.e2015.fixed c_variadic: Add future-incompatibility warning for ... arguments without a pattern outside of extern blocks 2025-11-10 14:33:56 +01:00
parse-errors.e2015.stderr c_variadic: Add future-incompatibility warning for ... arguments without a pattern outside of extern blocks 2025-11-10 14:33:56 +01:00
parse-errors.e2018.fixed c_variadic: Add future-incompatibility warning for ... arguments without a pattern outside of extern blocks 2025-11-10 14:33:56 +01:00
parse-errors.e2018.stderr c_variadic: Add future-incompatibility warning for ... arguments without a pattern outside of extern blocks 2025-11-10 14:33:56 +01:00
parse-errors.rs c_variadic: Add future-incompatibility warning for ... arguments without a pattern outside of extern blocks 2025-11-10 14:33:56 +01:00
same-program-multiple-abis-arm.rs use feature(c_variadic_naked_functions) in tests 2025-11-09 22:07:52 +01:00
same-program-multiple-abis-x86_64.rs use feature(c_variadic_naked_functions) in tests 2025-11-09 22:07:52 +01:00
trait-method.rs Ignore more failing ui tests for GCC backend 2025-09-26 15:33:48 +02:00
unsupported-abi.rs compiletest: rename add-core-stubs to add-minicore 2025-11-02 16:20:06 +01:00
unsupported-abi.stderr Ignore more failing ui tests for GCC backend 2025-10-13 15:30:26 +02:00
valid.rs Ignore more failing ui tests for GCC backend 2025-09-26 15:33:48 +02:00
variadic-ffi-1.rs compiletest: rename add-core-stubs to add-minicore 2025-11-02 16:20:06 +01:00
variadic-ffi-1.stderr Ignore more failing ui tests for GCC backend 2025-10-13 15:30:26 +02:00
variadic-ffi-4.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
variadic-ffi-4.stderr best_blame_constraint: don't filter constraints by sup SCC 2025-01-06 16:08:29 -08:00
variadic-ffi-6.rs Move /src/test to /tests 2023-01-11 09:32:08 +00:00
variadic-ffi-6.stderr Rollup merge of #117914 - estebank:issue-85843, r=wesleywiser 2023-12-12 17:40:53 +01:00
variadic-ffi-no-fixed-args.rs Update Tests 2024-04-16 18:15:37 -04:00
variadic-unreachable-arg-error.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00