# Error code E0755

The `ffi_pure` attribute was used on a non-foreign function.

Erroneous code example:

    #![feature(ffi_pure)]

    #[ffi_pure] // error!
    pub fn foo() {}
    fn main() {}

The `ffi_pure` attribute can only be used on foreign functions which do not have side effects or infinite loops:

    #![feature(ffi_pure)]

    extern "C" {
        #[ffi_pure] // ok!
        pub fn strlen(s: *const i8) -> isize;
    }
    fn main() {}

You can find more information about it in the unstable Rust Book.