| A function was given both the `ffi_const` and `ffi_pure` attributes. | |
| Erroneous code example: | |
| ```compile_fail,E0757 | |
| #![feature(ffi_const, ffi_pure)] | |
| 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: | |
| ``` | |
| #![feature(ffi_const)] | |
| 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`]. | |
| [GCC documentation on Common Function Attributes]: https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html | |
| [`ffi_const`]: https://doc.rust-lang.org/nightly/unstable-book/language-features/ffi-const.html | |
| [`ffi_pure`]: https://doc.rust-lang.org/nightly/unstable-book/language-features/ffi-pure.html |