summaryrefslogtreecommitdiff
path: root/test/libcxx/atomics/atomics.flag/init_bool.pass.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/libcxx/atomics/atomics.flag/init_bool.pass.cpp')
-rw-r--r--test/libcxx/atomics/atomics.flag/init_bool.pass.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/test/libcxx/atomics/atomics.flag/init_bool.pass.cpp b/test/libcxx/atomics/atomics.flag/init_bool.pass.cpp
index d7b172cd1212d..9dd68bd4e459f 100644
--- a/test/libcxx/atomics/atomics.flag/init_bool.pass.cpp
+++ b/test/libcxx/atomics/atomics.flag/init_bool.pass.cpp
@@ -18,8 +18,21 @@
#include <atomic>
#include <cassert>
+#include "test_macros.h"
+
+#if TEST_STD_VER >= 11
+// Ensure that static initialization happens; this is PR#37226
+extern std::atomic_flag global;
+struct X { X() { global.test_and_set(); }};
+X x;
+std::atomic_flag global = ATOMIC_FLAG_INIT;
+#endif
+
int main()
{
+#if TEST_STD_VER >= 11
+ assert(global.test_and_set() == 1);
+#endif
{
std::atomic_flag f(false);
assert(f.test_and_set() == 0);