]> granicus.if.org Git - libatomic_ops/commitdiff
Fix 'unknown attribute no_sanitize' compiler warning for GCC
authorIvan Maidanski <ivmai@mail.ru>
Mon, 20 Nov 2017 06:56:25 +0000 (09:56 +0300)
committerIvan Maidanski <ivmai@mail.ru>
Thu, 30 Nov 2017 15:51:40 +0000 (18:51 +0300)
(fix commits 9020c5db6a3eee47c058d9dc637f7fe1)

* src/atomic_ops.h [!__has_feature && __SANITIZE_ADDRESS__]
(AO_ADDRESS_SANITIZER): Define.
* src/atomic_ops.h [!AO_ATTR_NO_SANITIZE_MEMORY && AO_MEMORY_SANITIZER
&& !AO_CLANG_PREREQ(3,8)] (AO_ATTR_NO_SANITIZE_MEMORY): Define to
__attribute__((no_sanitize_memory)).
* src/atomic_ops.h [!AO_ATTR_NO_SANITIZE_THREAD && AO_THREAD_SANITIZER
&& !AO_CLANG_PREREQ(3,8)] (AO_ATTR_NO_SANITIZE_THREAD): Define to
__attribute__((no_sanitize_thread)).

src/atomic_ops.h

index 568a8c5418cdeb2dd992fc176ebb3e63929dfcbb..187e1f936ff86b2c76a98ba658d0e7b8f408cb26 100644 (file)
 # if __has_feature(thread_sanitizer)
 #   define AO_THREAD_SANITIZER
 # endif
-#endif
+#else
+# ifdef __SANITIZE_ADDRESS__
+    /* GCC v4.8+ */
+#   define AO_ADDRESS_SANITIZER
+# endif
+#endif /* !__has_feature */
 
 #ifndef AO_ATTR_NO_SANITIZE_MEMORY
-# if defined(AO_MEMORY_SANITIZER) \
-        && (!defined(__clang__) || AO_CLANG_PREREQ(3, 8))
+# ifndef AO_MEMORY_SANITIZER
+#   define AO_ATTR_NO_SANITIZE_MEMORY /* empty */
+# elif AO_CLANG_PREREQ(3, 8)
 #   define AO_ATTR_NO_SANITIZE_MEMORY __attribute__((no_sanitize("memory")))
 # else
-#   define AO_ATTR_NO_SANITIZE_MEMORY /* empty */
+#   define AO_ATTR_NO_SANITIZE_MEMORY __attribute__((no_sanitize_memory))
 # endif
 #endif /* !AO_ATTR_NO_SANITIZE_MEMORY */
 
 #ifndef AO_ATTR_NO_SANITIZE_THREAD
-# if defined(AO_THREAD_SANITIZER) \
-        && (!defined(__clang__) || AO_CLANG_PREREQ(3, 8))
+# ifndef AO_THREAD_SANITIZER
+#   define AO_ATTR_NO_SANITIZE_THREAD /* empty */
+# elif AO_CLANG_PREREQ(3, 8)
 #   define AO_ATTR_NO_SANITIZE_THREAD __attribute__((no_sanitize("thread")))
 # else
-#   define AO_ATTR_NO_SANITIZE_THREAD /* empty */
+#   define AO_ATTR_NO_SANITIZE_THREAD __attribute__((no_sanitize_thread))
 # endif
 #endif /* !AO_ATTR_NO_SANITIZE_THREAD */