Rollup merge of #136170 - taiki-e:atomics-32, r=workingjubilee
Reject unsound toggling of Arm atomics-32 target feature This target feature has the same semantics as RISC-V `forced-atomics` target feature that already marked as Forbidden (f5ed0cb217
) and toggling it can cause ABI incompatibility.2f348cb7ce/compiler/rustc_target/src/target_features.rs (L479-L483)
[Comment on feature definition in LLVM](7109f52197/llvm/lib/Target/ARM/ARMFeatures.td (L572-L574)
) also says: > Code built with this feature is not ABI-compatible with code built without this feature, if atomic variables are exposed across the ABI boundary. r? `@workingjubilee` or `@RalfJung` `@rustbot` label +O-Arm
This commit is contained in:
commit
0b1d717758
1 changed files with 5 additions and 0 deletions
|
@ -137,6 +137,11 @@ const ARM_FEATURES: &[(&str, Stability, ImpliedFeatures)] = &[
|
|||
// tidy-alphabetical-start
|
||||
("aclass", Unstable(sym::arm_target_feature), &[]),
|
||||
("aes", Unstable(sym::arm_target_feature), &["neon"]),
|
||||
(
|
||||
"atomics-32",
|
||||
Stability::Forbidden { reason: "unsound because it changes the ABI of atomic operations" },
|
||||
&[],
|
||||
),
|
||||
("crc", Unstable(sym::arm_target_feature), &[]),
|
||||
("d32", Unstable(sym::arm_target_feature), &[]),
|
||||
("dotprod", Unstable(sym::arm_target_feature), &["neon"]),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue