aboutsummaryrefslogtreecommitdiff
path: root/libcxx/test/std
diff options
context:
space:
mode:
Diffstat (limited to 'libcxx/test/std')
-rw-r--r--libcxx/test/std/atomics/atomics.ref/address.pass.cpp37
-rw-r--r--libcxx/test/std/language.support/support.limits/support.limits.general/atomic.version.compile.pass.cpp4
-rw-r--r--libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp4
3 files changed, 41 insertions, 4 deletions
diff --git a/libcxx/test/std/atomics/atomics.ref/address.pass.cpp b/libcxx/test/std/atomics/atomics.ref/address.pass.cpp
new file mode 100644
index 0000000..e0db6a9
--- /dev/null
+++ b/libcxx/test/std/atomics/atomics.ref/address.pass.cpp
@@ -0,0 +1,37 @@
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+// REQUIRES: std-at-least-c++26
+
+// constexpr T* address() const noexcept;
+
+#include <atomic>
+#include <cassert>
+#include <concepts>
+#include <memory>
+
+#include "atomic_helpers.h"
+#include "test_macros.h"
+
+template <typename T>
+struct TestAddress {
+ void operator()() const {
+ T x(T(1));
+ const std::atomic_ref<T> a(x);
+
+ std::same_as<T*> decltype(auto) p = a.address();
+ assert(std::addressof(x) == p);
+
+ static_assert(noexcept((a.address())));
+ }
+};
+
+int main(int, char**) {
+ TestEachAtomicType<TestAddress>()();
+
+ return 0;
+}
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/atomic.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/atomic.version.compile.pass.cpp
index 93eb43c..8bd0274 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/atomic.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/atomic.version.compile.pass.cpp
@@ -355,8 +355,8 @@
# ifndef __cpp_lib_atomic_ref
# error "__cpp_lib_atomic_ref should be defined in c++26"
# endif
-# if __cpp_lib_atomic_ref != 201806L
-# error "__cpp_lib_atomic_ref should have the value 201806L in c++26"
+# if __cpp_lib_atomic_ref != 202411L
+# error "__cpp_lib_atomic_ref should have the value 202411L in c++26"
# endif
# if !defined(_LIBCPP_VERSION)
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp
index d1fd55f..05af1fb 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp
@@ -6325,8 +6325,8 @@
# ifndef __cpp_lib_atomic_ref
# error "__cpp_lib_atomic_ref should be defined in c++26"
# endif
-# if __cpp_lib_atomic_ref != 201806L
-# error "__cpp_lib_atomic_ref should have the value 201806L in c++26"
+# if __cpp_lib_atomic_ref != 202411L
+# error "__cpp_lib_atomic_ref should have the value 202411L in c++26"
# endif
# if !defined(_LIBCPP_VERSION)