This is an equality comparison rather than a three-way comparison like
memcmp and <=>, so name it more precisely.

libstdc++-v3/ChangeLog:

        * include/bits/atomic_timed_wait.h
        (__atomic_wait_address_until_v): Replace __atomic_compare with
        __atomic_eq.
        (__atomic_wait_address_for_v): Likewise.
        * include/bits/atomic_wait.h (__atomic_compare): Rename to
        __atomic_eq.
        (__atomic_wait_address_v): Replace __atomic_compare with
        __atomic_eq.
---
 libstdc++-v3/include/bits/atomic_timed_wait.h | 10 ++++++----
 libstdc++-v3/include/bits/atomic_wait.h       |  5 +++--
 2 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/libstdc++-v3/include/bits/atomic_timed_wait.h 
b/libstdc++-v3/include/bits/atomic_timed_wait.h
index 645b8cfc4a8b..9a60f34c130d 100644
--- a/libstdc++-v3/include/bits/atomic_timed_wait.h
+++ b/libstdc++-v3/include/bits/atomic_timed_wait.h
@@ -304,8 +304,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
                                  const chrono::time_point<_Clock, _Dur>& 
__atime,
                                  bool __bare_wait = false) noexcept
     {
-       auto __pfn = [&](const _Tp& __val)
-          { return !__detail::__atomic_compare(__old, __val); };
+       auto __pfn = [&](const _Tp& __val) {
+        return !__detail::__atomic_eq(__old, __val);
+       };
        return __atomic_wait_address_until(__addr, __pfn, 
forward<_ValFn>(__vfn),
                                          __atime, __bare_wait);
     }
@@ -352,8 +353,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
                                const chrono::duration<_Rep, _Period>& __rtime,
                                bool __bare_wait = false) noexcept
     {
-      auto __pfn = [&](const _Tp& __val)
-         { return !__detail::__atomic_compare(__old, __val); };
+      auto __pfn = [&](const _Tp& __val) {
+       return !__detail::__atomic_eq(__old, __val);
+      };
       return __atomic_wait_address_for(__addr, __pfn, forward<_ValFn>(__vfn),
                                       __rtime, __bare_wait);
     }
diff --git a/libstdc++-v3/include/bits/atomic_wait.h 
b/libstdc++-v3/include/bits/atomic_wait.h
index db4fa031d2cf..0b29b17178e9 100644
--- a/libstdc++-v3/include/bits/atomic_wait.h
+++ b/libstdc++-v3/include/bits/atomic_wait.h
@@ -154,7 +154,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
     // return true if equal
     template<typename _Tp>
-      bool __atomic_compare(const _Tp& __a, const _Tp& __b)
+      inline bool
+      __atomic_eq(const _Tp& __a, const _Tp& __b)
       {
        // TODO make this do the correct padding bit ignoring comparison
        return __builtin_memcmp(&__a, &__b, sizeof(_Tp)) == 0;
@@ -469,7 +470,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
                            _ValFn __vfn) noexcept
     {
       auto __pfn = [&](const _Tp& __val)
-         { return !__detail::__atomic_compare(__old, __val); };
+         { return !__detail::__atomic_eq(__old, __val); };
       __atomic_wait_address(__addr, __pfn, forward<_ValFn>(__vfn));
     }
 
-- 
2.47.1

Reply via email to