Open
Description
openedon Sep 29, 2017
This is a tracking issue for the RFC "Support defining C-compatible variadic functions in Rust" (rust-lang/rfcs#2137).
Steps:
- Implement the RFC (PR Support defining C compatible variadic functions #57760)
- Adjust documentation (see instructions on forge)
- Stabilization PR (see instructions on forge)
Unresolved questions:
- "When implementing this feature, we will need to determine whether the compiler
can provide an appropriate lifetime that prevents aVaList
from outliving its
corresponding variadic function." - Continuing bikeshed on the
...
syntax. - Ensure that even when this gets stabilized for regular functions, it is still rejected on
const fn
. - What even is the semantics of this? What exactly is allowed and disallowed? Would be good to have a Miri implementation.
- borrowck problems: Poor interaction between NLL-borrowck, async, and c_variadic's
...
desugaring (VaListImpl<'_>
) #125431 - What exactly are the ABI requirements around variadic calls? What are the ABI compatibility rules? Do we have to be concerned about LLVM target features affecting variadic ABI?
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Metadata
Assignees
Labels
Area: Foreign function interface (FFI)Blocker: Approved by a merged RFC but not yet implemented.Blocker: Implemented in the nightly compiler and unstable.Category: A tracking issue for an RFC or an unstable feature.`#![feature(c_variadic)]`Status: This is ready to stabilize; it may need a stabilization report and a PRRelevant to the language team, which will review and decide on the PR/issue.