diff --git a/libcxx/test/libcxx/atomics/atomics.align/align.pass.pass.cpp b/libcxx/test/libcxx/atomics/atomics.align/align.pass.pass.cpp --- a/libcxx/test/libcxx/atomics/atomics.align/align.pass.pass.cpp +++ b/libcxx/test/libcxx/atomics/atomics.align/align.pass.pass.cpp @@ -7,7 +7,7 @@ //===----------------------------------------------------------------------===// // // UNSUPPORTED: libcpp-has-no-threads, c++03 -// REQUIRES: non-lockfree-atomics +// REQUIRES: is-lockfree-runtime-function // GCC currently fails because it needs -fabi-version=6 to fix mangling of // std::atomic when used with __attribute__((vector(X))). diff --git a/libcxx/utils/libcxx/test/features.py b/libcxx/utils/libcxx/test/features.py --- a/libcxx/utils/libcxx/test/features.py +++ b/libcxx/utils/libcxx/test/features.py @@ -55,7 +55,16 @@ #include struct Large { int storage[100]; }; std::atomic x; - int main(int, char**) { return x.load(), x.is_lock_free(); } + int main(int, char**) { (void)x.load(); return 0; } + """)), + # TODO: Remove this feature once compiler-rt includes __atomic_is_lockfree() + # on all supported platforms. + Feature(name='is-lockfree-runtime-function', + when=lambda cfg: sourceBuilds(cfg, """ + #include + struct Large { int storage[100]; }; + std::atomic x; + int main(int, char**) { return x.is_lock_free(); } """)), Feature(name='apple-clang', when=_isAppleClang),