diff options
| author | Dan Robertson <dan@dlrobertson.com> | 2018-11-30 15:53:44 +0000 |
|---|---|---|
| committer | Dan Robertson <dan@dlrobertson.com> | 2019-02-27 10:21:35 -0500 |
| commit | 58147d486bc26eb59d18d8e0d83aa6fe0b467fb9 (patch) | |
| tree | 3e25be958b33c7e5727b059511157ac9f1a22722 /src/librustc_codegen_ssa/traits | |
| parent | cd56472cc47981e62c684ceada7922ac3731b785 (diff) | |
| download | rust-58147d486bc26eb59d18d8e0d83aa6fe0b467fb9.tar.gz rust-58147d486bc26eb59d18d8e0d83aa6fe0b467fb9.zip | |
Support defining C compatible variadic functions
Add support for defining C compatible variadic functions in unsafe rust with extern "C".
Diffstat (limited to 'src/librustc_codegen_ssa/traits')
| -rw-r--r-- | src/librustc_codegen_ssa/traits/intrinsic.rs | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/librustc_codegen_ssa/traits/intrinsic.rs b/src/librustc_codegen_ssa/traits/intrinsic.rs index 3cd0c39d413..cd527898977 100644 --- a/src/librustc_codegen_ssa/traits/intrinsic.rs +++ b/src/librustc_codegen_ssa/traits/intrinsic.rs @@ -20,4 +20,10 @@ pub trait IntrinsicCallMethods<'tcx>: BackendTypes { fn abort(&mut self); fn assume(&mut self, val: Self::Value); fn expect(&mut self, cond: Self::Value, expected: bool) -> Self::Value; + /// Trait method used to inject `va_start` on the "spoofed" `VaList` in + /// Rust defined C-variadic functions. + fn va_start(&mut self, val: Self::Value) -> Self::Value; + /// Trait method used to inject `va_end` on the "spoofed" `VaList` before + /// Rust defined C-variadic functions return. + fn va_end(&mut self, val: Self::Value) -> Self::Value; } |
