Rust errors / Everything else
Rust compiler error · checked with rustc 1.99.0
Rust error E0045: C-variadic functions with the "Rust" calling convention are not supported
What it meansVariadic parameters have been used on a non-C ABI function.
What rustc prints
error[E0045]: C-variadic functions with the "Rust" calling convention are not supported
--> main.rs:2:5
|
2 | fn foo(x: u8, ...); // error!
| ^^^^^^^^^^^^^^^^^^^ C-variadic function must have a compatible calling conventionReal output of rustc 1.99.0 compiling the official example below (2021 edition). Your names and line numbers will differ; the first line is the part to match.
The compiler team's explanation
Variadic parameters have been used on a non-C ABI function.
Erroneous code example:
extern "Rust" {
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, ...);
}From rustc --explain E0045 (1.99.0), part of the Rust project, MIT or Apache-2.0. Official page.
Related errors
- E0061this function takes N arguments but M were supplied
- E0412cannot find type in this scope
- E0515cannot return reference to local variable
- E0728await is only allowed inside async functions and blocks
- E0040explicit use of destructor method
- E0054cannot cast `i32` as `bool`
- E0057this function takes 1 argument but 0 arguments were supplied
Up next
Often hit nextE0061: this function takes N arguments but M were suppliedA related error from the same family.Read it next →Did this answer your question?