Skip to main content

X86_SOFTFLOAT_SSE

Static X86_SOFTFLOAT_SSE 

Source
pub static X86_SOFTFLOAT_SSE: &'static Lint
Expand description

The x86_softfloat_sse lint detects usage of #[target_feature(enable = "sse")] or target features that imply SSE on softfloat x86 and x86-64 targets. Enabling this target feature in a soft-float configuration is not supported by LLVM and can lead to crashes.

§Example

#[target_feature(enable = "avx")]
fn with_avx() {}

This will produce:

error: enabling the `sse` target feature on the current target is unsupported due to LLVM backend issues
  --> $DIR/abi-incompatible-target-feature-attribute-fcw.rs:11:18
   |
   | #[target_feature(enable = "avx")]
   |                  ^^^^^^^^^^^^^^^
   |
   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
   = note: for more information, see issue #117938 <https://github.com/rust-lang/rust/issues/117938>

§Explanation

LLVM does not support combining the soft-float target feature (which is implicitly enabled on these targets) with sse. This can lead to crashes of the backend. To prevent that, Rust is turning that combination into an error.