Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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" {
    #[unsafe(ffi_const)]
    #[unsafe(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" {
    #[unsafe(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.