]> git.ipfire.org Git - thirdparty/zlib-ng.git/commitdiff
Disable alignment sanitizer with -fno-sanitize when unaligned reads supported. #496
authorNathan Moinvaziri <nathan@nathanm.com>
Wed, 12 Feb 2020 21:39:13 +0000 (13:39 -0800)
committerHans Kristian Rosbach <hk-github@circlestorm.org>
Fri, 13 Mar 2020 12:10:09 +0000 (13:10 +0100)
CMakeLists.txt

index 0fa88544bc12ef6e909a10fbb8d67e11b56abdda..ab5a77006d3d466f0ae8258a0fdfa1fb947ab309 100644 (file)
@@ -320,6 +320,7 @@ endif()
 if(WITH_SANITIZERS)
     set(_sanitize_flags
         address
+        alignment
         array-bounds
         bool
         bounds
@@ -365,8 +366,14 @@ if(WITH_SANITIZERS)
             set(CMAKE_REQUIRED_FLAGS)
         endif()
     endforeach()
-    if(NOT "${SANITIZERS_FLAGS}" STREQUAL "")
+
+    if(NOT ${SANITIZERS_FLAGS} STREQUAL "")
         set(SANITIZERS_FLAGS "-fsanitize=${SANITIZERS_FLAGS}")
+        # Group flag -fsanitize=undefined will automatically add alignment, even if it is not in our
+        # sanitize flag list, so we need to explicitly disable alignment sanitizing.
+        if(UNALIGNED_OK AND ${SANITIZERS_FLAGS} MATCHES "alignment")
+            set(SANITIZERS_FLAGS "${SANITIZERS_FLAGS} -fno-sanitize=alignment")
+        endif()
     endif()
 
     message(STATUS "Adding sanitizers flags: ${SANITIZERS_FLAGS}")