# 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`.