]> granicus.if.org Git - libatomic_ops/commitdiff
Workaround 'value of AO_CLEAR unknown' cppcheck info message
authorIvan Maidanski <ivmai@mail.ru>
Mon, 24 Apr 2017 18:04:34 +0000 (21:04 +0300)
committerIvan Maidanski <ivmai@mail.ru>
Mon, 24 Apr 2017 18:04:34 +0000 (21:04 +0300)
* src/atomic_ops.h [AO_AO_TS_T || AO_CHAR_TS_T] (AO_CLEAR): Check
defined(AO_HAVE_CLEAR) instead of defined(AO_CLEAR).
* src/atomic_ops.h [AO_AO_TS_T || AO_CHAR_TS_T] (AO_HAVE_CLEAR): Define
(unless already defined).
* src/atomic_ops/sysdeps/gcc/generic.h (AO_HAVE_CLEAR): Define (along
with AO_CLEAR).
* src/atomic_ops/sysdeps/gcc/hppa.h (AO_HAVE_CLEAR): Likewise.
* src/atomic_ops/sysdeps/hpc/hppa.h (AO_HAVE_CLEAR): Likewise.

src/atomic_ops.h
src/atomic_ops/sysdeps/gcc/generic.h
src/atomic_ops/sysdeps/gcc/hppa.h
src/atomic_ops/sysdeps/hpc/hppa.h

index 92b4e3d71af4a798b6d2597b99b004292f128e1b..03f82a6619962ba2995c531128f039b4e25b088e 100644 (file)
 
 /* The most common way to clear a test-and-set location         */
 /* at the end of a critical section.                            */
-#if AO_AO_TS_T && !defined(AO_CLEAR)
+#if AO_AO_TS_T && !defined(AO_HAVE_CLEAR)
 # define AO_CLEAR(addr) AO_store_release((AO_TS_t *)(addr), AO_TS_CLEAR)
+# define AO_HAVE_CLEAR
 #endif
-#if AO_CHAR_TS_T && !defined(AO_CLEAR)
+#if AO_CHAR_TS_T && !defined(AO_HAVE_CLEAR)
 # define AO_CLEAR(addr) AO_char_store_release((AO_TS_t *)(addr), AO_TS_CLEAR)
+# define AO_HAVE_CLEAR
 #endif
 
 /* The generalization section.  */
index 1c96578946097a41f64f9ee06fadb8f746b2e8bc..d21a4ee83af853ae4148a91ae9781d24905cdd00 100644 (file)
@@ -90,6 +90,7 @@
 # include "generic-arithm.h"
 
 # define AO_CLEAR(addr) __atomic_clear(addr, __ATOMIC_RELEASE)
+# define AO_HAVE_CLEAR
 
   AO_INLINE AO_TS_VAL_t
   AO_test_and_set(volatile AO_TS_t *addr)
index fe38ff81b2883f34ced9aa57f9e637ecc2950611..2d0c491c3b64c051eb33179d8fcfd3c877b7f48b 100644 (file)
@@ -87,6 +87,7 @@ AO_pa_clear(volatile AO_TS_t * addr)
   *a = 1;
 }
 #define AO_CLEAR(addr) AO_pa_clear(addr)
+#define AO_HAVE_CLEAR
 
 #undef AO_PA_LDCW_ALIGNMENT
 #undef AO_ldcw
index 27f3fa7229df60b7bc66d88ee132e371d2fa4806..f0da9480d7ba50d7102f01a583e059393dca4afb 100644 (file)
@@ -97,6 +97,7 @@ AO_pa_clear(volatile AO_TS_t * addr)
   *a = 1;
 }
 #define AO_CLEAR(addr) AO_pa_clear(addr)
+#define AO_HAVE_CLEAR
 
 #undef AO_PA_LDCW_ALIGNMENT
 #undef AO_ldcw