Error code E0757
A function was given both the ffi_const
and ffi_pure
attributes.
Erroneous code example:
#![allow(unused)] #![feature(ffi_const, ffi_pure)] fn main() { extern "C" { #[ffi_const] #[ffi_pure] // error: `#[ffi_const]` function cannot be `#[ffi_pure]` pub fn square(num: i32) -> i32; } }
As ffi_const
provides stronger guarantees than ffi_pure
, remove the
ffi_pure
attribute:
#![allow(unused)] #![feature(ffi_const)] fn main() { extern "C" { #[ffi_const] pub fn square(num: i32) -> i32; } }
You can get more information about const
and pure
in the GCC documentation
on Common Function Attributes. The unstable Rust Book has more information
about ffi_const
and ffi_pure
.