]> granicus.if.org Git - gc/commitdiff
Fix 'unknown attribute no_sanitize' compiler warnings for GCC
authorIvan Maidanski <ivmai@mail.ru>
Mon, 20 Nov 2017 21:17:51 +0000 (00:17 +0300)
committerIvan Maidanski <ivmai@mail.ru>
Fri, 15 Dec 2017 21:21:31 +0000 (00:21 +0300)
(Cherry-pick commit bba7234a from 'master' branch.)

* include/private/gc_priv.h [!GC_ATTR_NO_SANITIZE_ADDR
&& ADDRESS_SANITIZER && !AO_CLANG_PREREQ(3,8)]
(GC_ATTR_NO_SANITIZE_ADDR): Define to
__attribute__((no_sanitize_address)).
* include/private/gc_priv.h [!GC_ATTR_NO_SANITIZE_MEMORY
&& MEMORY_SANITIZER && !AO_CLANG_PREREQ(3,8)]
(GC_ATTR_NO_SANITIZE_MEMORY): Define to
__attribute__((no_sanitize_memory)).

include/private/gc_priv.h

index 771adb8f97c2481b494a98865afd3d746632f247..4b36565d285b5c0fc51b2fdb3b91d8c20b071c0e 100644 (file)
@@ -156,18 +156,22 @@ typedef char * ptr_t;   /* A generic pointer to which we can add        */
 #endif
 
 #ifndef GC_ATTR_NO_SANITIZE_ADDR
-# ifdef ADDRESS_SANITIZER
+# ifndef ADDRESS_SANITIZER
+#   define GC_ATTR_NO_SANITIZE_ADDR /* empty */
+# elif __clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >= 8)
 #   define GC_ATTR_NO_SANITIZE_ADDR __attribute__((no_sanitize("address")))
 # else
-#   define GC_ATTR_NO_SANITIZE_ADDR /* empty */
+#   define GC_ATTR_NO_SANITIZE_ADDR __attribute__((no_sanitize_address))
 # endif
 #endif /* !GC_ATTR_NO_SANITIZE_ADDR */
 
 #ifndef GC_ATTR_NO_SANITIZE_MEMORY
-# ifdef MEMORY_SANITIZER
+# ifndef MEMORY_SANITIZER
+#   define GC_ATTR_NO_SANITIZE_MEMORY /* empty */
+# elif __clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >= 8)
 #   define GC_ATTR_NO_SANITIZE_MEMORY __attribute__((no_sanitize("memory")))
 # else
-#   define GC_ATTR_NO_SANITIZE_MEMORY /* empty */
+#   define GC_ATTR_NO_SANITIZE_MEMORY __attribute__((no_sanitize_memory))
 # endif
 #endif /* !GC_ATTR_NO_SANITIZE_MEMORY */