diff options
Diffstat (limited to '')
-rw-r--r-- | compiler/rustc_error_codes/src/error_codes/E0045.md | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/compiler/rustc_error_codes/src/error_codes/E0045.md b/compiler/rustc_error_codes/src/error_codes/E0045.md new file mode 100644 index 000000000..143c693bf --- /dev/null +++ b/compiler/rustc_error_codes/src/error_codes/E0045.md @@ -0,0 +1,21 @@ +Variadic parameters have been used on a non-C ABI function. + +Erroneous code example: + +```compile_fail,E0045 +#![feature(unboxed_closures)] + +extern "rust-call" { + fn foo(x: u8, ...); // error! +} +``` + +Rust only supports variadic parameters for interoperability with C code in its +FFI. As such, variadic parameters can only be used with functions which are +using the C ABI. To fix such code, put them in an extern "C" block: + +``` +extern "C" { + fn foo (x: u8, ...); +} +``` |