Fix UBSan bots by blacklisting bits/stl_tree.h.

Summary:
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.

Reviewers: vitalybuka

Subscribers: llvm-commits, mgorny

Differential Revision: https://reviews.llvm.org/D28686

llvm-svn: 291918
This commit is contained in:
Ivan Krasin 2017-01-13 17:30:10 +00:00
parent 791bbf6f18
commit 10527a9253
2 changed files with 9 additions and 0 deletions

View File

@ -555,6 +555,8 @@ if(LLVM_USE_SANITIZER)
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)

View File

@ -0,0 +1,7 @@
# 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.
# upcast of address with insufficient space for an object of type std::_Rb_tree_node<...>
src:*bits/stl_tree.h