[libcxx-commits] [libcxx] [libc++][NFC] Simplify features for detecting atomics' support. (PR #75553)
via libcxx-commits
libcxx-commits at lists.llvm.org
Thu Dec 14 20:35:55 PST 2023
================
@@ -183,25 +183,26 @@ def _getAndroidDeviceApi(cfg):
actions=[AddLinkFlag("-latomic")],
),
Feature(
- name="non-lockfree-atomics",
+ name="has-64-bit-atomics",
when=lambda cfg: sourceBuilds(
cfg,
"""
#include <atomic>
- struct Large { int storage[100]; };
+ struct Large { char storage[64/8]; };
std::atomic<Large> x;
- int main(int, char**) { (void)x.load(); return 0; }
+ int main(int, char**) { (void)x.load(); x.is_lockfree(); return 0; }
""",
),
),
Feature(
- name="has-64-bit-atomics",
+ name="has-128-bit-atomics",
when=lambda cfg: sourceBuilds(
cfg,
"""
#include <atomic>
- std::atomic_uint64_t x;
- int main(int, char**) { (void)x.load(); return 0; }
+ struct Large { char storage[128/8]; };
+ std::atomic<Large> x;
+ int main(int, char**) { (void)x.load(); x.is_lockfree(); return 0; }
----------------
EricWF wrote:
What's the purpose of the call to `is_lockfree`?
https://github.com/llvm/llvm-project/pull/75553
More information about the libcxx-commits
mailing list