https://gcc.gnu.org/g:2aefa065c047adde17bf92031b7bde43d4aa5d7f
commit r17-5155-g2aefa065c047adde17bf92031b7bde43d4aa5d7f Author: Yap Zhi Heng <[email protected]> Date: Tue Sep 22 10:06:27 2026 +0800 gccrs: Correct the naming of atomic store & load intrinsics The corrected atomic store & load intrinsics were using post-1.64.0 namings, this patch just adds back the 1.49.0 namings for the wrongly named intrinsics. gcc/rust/ChangeLog: * util/rust-intrinsic-values.h (Rust::Values::Intrinsics): Add entries for atomic_store, atomic_store_rel, atomic_load, atomic_load_acq. * backend/rust-compile-intrinsic.cc (generic_intrinsics): Likewise. Signed-off-by: Yap Zhi Heng <[email protected]> Diff: --- gcc/rust/backend/rust-compile-intrinsic.cc | 4 ++++ gcc/rust/util/rust-intrinsic-values.h | 13 +++++++++++++ 2 files changed, 17 insertions(+) diff --git a/gcc/rust/backend/rust-compile-intrinsic.cc b/gcc/rust/backend/rust-compile-intrinsic.cc index b48647670089..b13e721a8ca7 100644 --- a/gcc/rust/backend/rust-compile-intrinsic.cc +++ b/gcc/rust/backend/rust-compile-intrinsic.cc @@ -49,12 +49,16 @@ static const std::map<std::string, handlers::HandlerBuilder> generic_intrinsics {IValue::COPY_NONOVERLAPPING, handlers::copy (false)}, {IValue::PREFETCH_READ_DATA, handlers::prefetch_read_data}, {IValue::PREFETCH_WRITE_DATA, handlers::prefetch_write_data}, + {IValue::ATOMIC_STORE, handlers::atomic_store (__ATOMIC_SEQ_CST)}, {IValue::ATOMIC_STORE_SEQCST, handlers::atomic_store (__ATOMIC_SEQ_CST)}, + {IValue::ATOMIC_STORE_REL, handlers::atomic_store (__ATOMIC_RELEASE)}, {IValue::ATOMIC_STORE_RELEASE, handlers::atomic_store (__ATOMIC_RELEASE)}, {IValue::ATOMIC_STORE_RELAXED, handlers::atomic_store (__ATOMIC_RELAXED)}, {IValue::ATOMIC_STORE_UNORDERED, handlers::atomic_store (__ATOMIC_RELAXED)}, + {IValue::ATOMIC_LOAD, handlers::atomic_load (__ATOMIC_SEQ_CST)}, {IValue::ATOMIC_LOAD_SEQCST, handlers::atomic_load (__ATOMIC_SEQ_CST)}, + {IValue::ATOMIC_LOAD_ACQ, handlers::atomic_load (__ATOMIC_ACQUIRE)}, {IValue::ATOMIC_LOAD_ACQUIRE, handlers::atomic_load (__ATOMIC_ACQUIRE)}, {IValue::ATOMIC_LOAD_RELAXED, handlers::atomic_load (__ATOMIC_RELAXED)}, {IValue::ATOMIC_LOAD_UNORDERED, handlers::atomic_load (__ATOMIC_RELAXED)}, diff --git a/gcc/rust/util/rust-intrinsic-values.h b/gcc/rust/util/rust-intrinsic-values.h index f6e36a3867d4..43df60fd5a2d 100644 --- a/gcc/rust/util/rust-intrinsic-values.h +++ b/gcc/rust/util/rust-intrinsic-values.h @@ -97,12 +97,25 @@ public: static constexpr auto &PREFETCH_READ_DATA = "prefetch_read_data"; static constexpr auto &PREFETCH_WRITE_DATA = "prefetch_write_data"; + static constexpr auto &ATOMIC_STORE = "atomic_store"; + // atomic_store is renamed to atomic_store_seqcst from 1.64.0, the latter is + // left in for compatibility + // https://github.com/rust-lang/rust/commit/4982a59986f7393ace98f63c10e6c435ffba1420 static constexpr auto &ATOMIC_STORE_SEQCST = "atomic_store_seqcst"; + static constexpr auto &ATOMIC_STORE_REL = "atomic_store_rel"; + // atomic_store_rel is nenamed to atomic_store_release from 1.64.0, the + // latter is left in for compatibility static constexpr auto &ATOMIC_STORE_RELEASE = "atomic_store_release"; static constexpr auto &ATOMIC_STORE_RELAXED = "atomic_store_relaxed"; static constexpr auto &ATOMIC_STORE_UNORDERED = "atomic_store_unordered"; + static constexpr auto &ATOMIC_LOAD = "atomic_load"; + // atomic_load is renamed to atomic_load_seqcst from 1.64.0, the latter is + // left in for compatibility static constexpr auto &ATOMIC_LOAD_SEQCST = "atomic_load_seqcst"; + static constexpr auto &ATOMIC_LOAD_ACQ = "atomic_load_acq"; + // atomic_load_acq is renamed to atomic_load_acquire from 1.64.0, the latter + // is left in for compatibility static constexpr auto &ATOMIC_LOAD_ACQUIRE = "atomic_load_acquire"; static constexpr auto &ATOMIC_LOAD_RELAXED = "atomic_load_relaxed"; static constexpr auto &ATOMIC_LOAD_UNORDERED = "atomic_load_unordered";
