Commit e71744d
authored
Rollup merge of #148770 - folkertdev:naked-c-variadic, r=workingjubilee
implement `feature(c_variadic_naked_functions)`
tracking issue: rust-lang/rust#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````File tree
0 file changed
+0
-0
lines changed0 file changed
+0
-0
lines changed
0 commit comments