]> git.lizzy.rs Git - rust.git/commit
Rollup merge of #106856 - vadorovsky:fix-atomic-annotations, r=joshtriplett
authorYuki Okushi <jtitor@2k36.org>
Fri, 27 Jan 2023 03:57:54 +0000 (12:57 +0900)
committerGitHub <noreply@github.com>
Fri, 27 Jan 2023 03:57:54 +0000 (12:57 +0900)
commitbf321ece1e5756493b1ac061cd87a48123cda52c
tree7d8521db9dac409e6449a8695ab43e4781d58ba3
parent4b4aeae359fae65d844d7b557f9ab262d6ae6a5e
parent474ea87943c3077feb7d7f2a6f295bd06654ef82
Rollup merge of #106856 - vadorovsky:fix-atomic-annotations, r=joshtriplett

core: Support variety of atomic widths in width-agnostic functions

Before this change, the following functions and macros were annotated with `#[cfg(target_has_atomic = "8")]` or
`#[cfg(target_has_atomic_load_store = "8")]`:

* `atomic_int`
* `strongest_failure_ordering`
* `atomic_swap`
* `atomic_add`
* `atomic_sub`
* `atomic_compare_exchange`
* `atomic_compare_exchange_weak`
* `atomic_and`
* `atomic_nand`
* `atomic_or`
* `atomic_xor`
* `atomic_max`
* `atomic_min`
* `atomic_umax`
* `atomic_umin`

However, none of those functions and macros actually depend on 8-bit width and they are needed for all atomic widths (16-bit, 32-bit, 64-bit etc.). Some targets might not support 8-bit atomics (i.e. BPF, if we would enable atomic CAS for it).

This change fixes that by removing the `"8"` argument from annotations, which results in accepting the whole variety of widths.

Fixes #106845
Fixes #106795

Signed-off-by: Michal Rostecki <vadorovsky@gmail.com>
compiler/rustc_session/src/config.rs