aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames McCoy <jamessan@jamessan.com>2020-09-04 11:09:25 -0400
committerJames McCoy <jamessan@jamessan.com>2020-09-04 11:09:25 -0400
commit33bf6f9ada84b9bb143cc8864461afec249c27bf (patch)
tree163781cffe7c85daf6d99dad2ee01e809285ac53
parent74ad66404fff6ea4a5ffa219855deed1ebeb383e (diff)
downloadrneovim-33bf6f9ada84b9bb143cc8864461afec249c27bf.tar.gz
rneovim-33bf6f9ada84b9bb143cc8864461afec249c27bf.tar.bz2
rneovim-33bf6f9ada84b9bb143cc8864461afec249c27bf.zip
ci: Try to recover from sanitizer issues
When running in CI, we want to find as many problems as possible instead. Let the code try to keep running from recoverable issues so we report all the sanitize issues we can.
-rw-r--r--src/nvim/CMakeLists.txt14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/nvim/CMakeLists.txt b/src/nvim/CMakeLists.txt
index 7b4438b896..2d98f1a659 100644
--- a/src/nvim/CMakeLists.txt
+++ b/src/nvim/CMakeLists.txt
@@ -624,9 +624,19 @@ if(CLANG_ASAN_UBSAN)
message(STATUS "Enabling Clang address sanitizer and undefined behavior sanitizer for nvim.")
check_c_compiler_flag(-fno-sanitize-recover=all SANITIZE_RECOVER_ALL)
if(SANITIZE_RECOVER_ALL)
- set(SANITIZE_RECOVER -fno-sanitize-recover=all) # Clang 3.6+
+ if(TRAVIS_CI_BUILD)
+ # Try to recover from all sanitize issues so we get reports about all failures
+ set(SANITIZE_RECOVER -fsanitize-recover=all) # Clang 3.6+
+ else()
+ set(SANITIZE_RECOVER -fno-sanitize-recover=all) # Clang 3.6+
+ endif()
else()
- set(SANITIZE_RECOVER -fno-sanitize-recover) # Clang 3.5-
+ if(TRAVIS_CI_BUILD)
+ # Try to recover from all sanitize issues so we get reports about all failures
+ set(SANITIZE_RECOVER -fsanitize-recover) # Clang 3.5-
+ else()
+ set(SANITIZE_RECOVER -fno-sanitize-recover) # Clang 3.5-
+ endif()
endif()
set_property(TARGET nvim APPEND PROPERTY COMPILE_DEFINITIONS EXITFREE)
set_property(TARGET nvim APPEND PROPERTY COMPILE_OPTIONS ${SANITIZE_RECOVER} -fno-omit-frame-pointer -fno-optimize-sibling-calls -fsanitize=address -fsanitize=undefined -fsanitize-blacklist=${PROJECT_SOURCE_DIR}/src/.asan-blacklist)