]> granicus.if.org Git - libatomic_ops/commitdiff
Fix missing double_compare_and_swap_dd_acquire_read
authorIvan Maidanski <ivmai@mail.ru>
Tue, 1 Nov 2016 08:12:21 +0000 (11:12 +0300)
committerIvan Maidanski <ivmai@mail.ru>
Tue, 1 Nov 2016 08:13:11 +0000 (11:13 +0300)
This matters only if AO_double_compare_and_swap[_acquire_read] actually
defined in generalize.h too.

* src/atomic_ops/generalize.h
[!AO_HAVE_double_compare_and_swap_dd_acquire_read]
(AO_double_compare_and_swap_dd_acquire_read): Define (same as definition
as auto-generated in generalize-small.h).

src/atomic_ops/generalize.h

index 489f24676bd609128005a3f8cd648ed875fa9734..6edeab4a45d23158cbc5a18afd475a87b77eb698 100644 (file)
   }
 # define AO_HAVE_double_compare_and_swap_full
 #endif
+
+#ifndef AO_HAVE_double_compare_and_swap_dd_acquire_read
+  /* Duplicated from generalize-small because double CAS might be       */
+  /* defined after the include.                                         */
+# ifdef AO_NO_DD_ORDERING
+#   if defined(AO_HAVE_double_compare_and_swap_acquire_read)
+#     define AO_double_compare_and_swap_dd_acquire_read(addr, old, new_val) \
+                AO_double_compare_and_swap_acquire_read(addr, old, new_val)
+#     define AO_HAVE_double_compare_and_swap_dd_acquire_read
+#   endif
+# elif defined(AO_HAVE_double_compare_and_swap)
+#   define AO_double_compare_and_swap_dd_acquire_read(addr, old, new_val) \
+                AO_double_compare_and_swap(addr, old, new_val)
+#   define AO_HAVE_double_compare_and_swap_dd_acquire_read
+# endif /* !AO_NO_DD_ORDERING */
+#endif