diff options
| author | Jubilee Young <workingjubilee@gmail.com> | 2024-06-22 14:42:26 -0700 |
|---|---|---|
| committer | Jubilee Young <workingjubilee@gmail.com> | 2024-06-22 15:14:14 -0700 |
| commit | 26dccadb476aaafa0930e6036c5583eea2c052e1 (patch) | |
| tree | 65843fe14169b64f518246b09335a2f7ef9e4fb5 /tests | |
| parent | a0f01c3c1067aecb3d1ad88621bb4d63d0a2d289 (diff) | |
| download | rust-26dccadb476aaafa0930e6036c5583eea2c052e1.tar.gz rust-26dccadb476aaafa0930e6036c5583eea2c052e1.zip | |
Allow "C-unwind" fn to have C variadics
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/ui/abi/variadic-ffi.rs | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/tests/ui/abi/variadic-ffi.rs b/tests/ui/abi/variadic-ffi.rs index de4844ac860..6cfae0f2a32 100644 --- a/tests/ui/abi/variadic-ffi.rs +++ b/tests/ui/abi/variadic-ffi.rs @@ -14,6 +14,10 @@ pub unsafe extern "C" fn test_valist_forward(n: u64, mut ap: ...) -> f64 { rust_valist_interesting_average(n, ap.as_va_list()) } +pub unsafe extern "C-unwind" fn c_unwind_can_forward(n: u64, mut ap: ...) -> f64 { + rust_valist_interesting_average(n, ap.as_va_list()) +} + pub unsafe extern "C" fn test_va_copy(_: u64, mut ap: ...) { let mut ap2 = ap.clone(); assert_eq!(rust_valist_interesting_average(2, ap2.as_va_list()) as i64, 30); @@ -73,6 +77,10 @@ pub fn main() { } unsafe { + assert_eq!(c_unwind_can_forward(2, 10i64, 10f64, 20i64, 20f64) as i64, 30); + } + + unsafe { test_va_copy(4, 10i64, 10f64, 20i64, 20f64, 30i64, 30f64, 40i64, 40f64); } } |
