[PATCH] D28686: Fix UBSan bots by blacklisting bits/stl_tree.h.

Ivan Krasin via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jan 13 09:32:09 PST 2017


krasin created this revision.
krasin added a reviewer: vitalybuka.
krasin added a subscriber: llvm-commits.
Herald added a subscriber: mgorny.

libstdc++ has some undefined behavior in bits/stl_tree.h that
has recently became excercised by some of the LLVM code.
Given that fixing libstdc++ will take years, adding the file
into a blacklist to fix bots seems like a necessity.


https://reviews.llvm.org/D28686

Files:
  cmake/modules/HandleLLVMOptions.cmake
  utils/sanitizers/
  utils/sanitizers/ubsan_blacklist.txt


Index: utils/sanitizers/ubsan_blacklist.txt
===================================================================
--- /dev/null
+++ utils/sanitizers/ubsan_blacklist.txt
@@ -0,0 +1,5 @@
+# This blacklist should be applied when LLVM is built
+# with -fsanitize=undefined instrumentation. It exists
+# because libstdc++ has some undefined behavior issues
+# in some of the headers, in particular, stl_tree.h.
+src:*bits/stl_tree.h
Index: cmake/modules/HandleLLVMOptions.cmake
===================================================================
--- cmake/modules/HandleLLVMOptions.cmake
+++ cmake/modules/HandleLLVMOptions.cmake
@@ -555,6 +555,8 @@
       append_common_sanitizer_flags()
       append("-fsanitize=undefined -fno-sanitize=vptr,function -fno-sanitize-recover=all"
               CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
+      append(" -fsanitize-blacklist=${CMAKE_SOURCE_DIR}/utils/sanitizers/ubsan_blacklist.txt"
+	      CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
     elseif (LLVM_USE_SANITIZER STREQUAL "Thread")
       append_common_sanitizer_flags()
       append("-fsanitize=thread" CMAKE_C_FLAGS CMAKE_CXX_FLAGS)


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D28686.84326.patch
Type: text/x-patch
Size: 1108 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170113/36ceaa94/attachment.bin>


More information about the llvm-commits mailing list