Skip to content

Commit 47ef4ac

Browse files
committed
[libc++] Fix bug in atomic_ref<T*> test
1 parent c3d1a50 commit 47ef4ac

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

libcxx/test/std/atomics/atomics.ref/increment_decrement.pass.cpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -42,21 +42,21 @@ constexpr bool does_not_have_increment_nor_decrement_operators() {
4242

4343
template <typename T>
4444
struct TestDoesNotHaveIncrementDecrement {
45-
void operator()() const { static_assert(does_not_have_increment_nor_decrement_operators<T>()); }
45+
void operator()() const { static_assert(does_not_have_increment_nor_decrement_operators<std::atomic_ref<T>>()); }
4646
};
4747

4848
template <typename T>
4949
struct TestIncrementDecrement {
5050
void operator()() const {
51-
static_assert(std::is_integral_v<T>);
51+
static_assert(std::is_integral_v<T> || std::is_pointer_v<T>);
5252

5353
T x(T(1));
5454
std::atomic_ref<T> const a(x);
5555

5656
{
5757
std::same_as<T> decltype(auto) y = ++a;
58-
assert(y == T(2));
59-
assert(x == T(2));
58+
assert(y == T(1) + 1);
59+
assert(x == T(1) + 1);
6060
ASSERT_NOEXCEPT(++a);
6161
}
6262

@@ -70,13 +70,13 @@ struct TestIncrementDecrement {
7070
{
7171
std::same_as<T> decltype(auto) y = a++;
7272
assert(y == T(1));
73-
assert(x == T(2));
73+
assert(x == T(1) + 1);
7474
ASSERT_NOEXCEPT(a++);
7575
}
7676

7777
{
7878
std::same_as<T> decltype(auto) y = a--;
79-
assert(y == T(2));
79+
assert(y == T(1) + 1);
8080
assert(x == T(1));
8181
ASSERT_NOEXCEPT(a--);
8282
}
@@ -88,7 +88,7 @@ int main(int, char**) {
8888

8989
TestEachFloatingPointType<TestDoesNotHaveIncrementDecrement>()();
9090

91-
TestEachPointerType<TestDoesNotHaveIncrementDecrement>()();
91+
TestEachPointerType<TestIncrementDecrement>()();
9292

9393
TestDoesNotHaveIncrementDecrement<bool>()();
9494
TestDoesNotHaveIncrementDecrement<UserAtomicType>()();

0 commit comments

Comments
 (0)