aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmake/GetCompileFlags.cmake10
-rw-r--r--src/nvim/CMakeLists.txt14
-rw-r--r--src/nvim/message.c16
3 files changed, 33 insertions, 7 deletions
diff --git a/cmake/GetCompileFlags.cmake b/cmake/GetCompileFlags.cmake
index 482eacca16..667b97350c 100644
--- a/cmake/GetCompileFlags.cmake
+++ b/cmake/GetCompileFlags.cmake
@@ -13,6 +13,11 @@ function(get_compile_flags _compile_flags)
get_directory_property(compile_definitions
DIRECTORY "src/nvim"
COMPILE_DEFINITIONS)
+ get_target_property(compile_definitions_target nvim COMPILE_DEFINITIONS)
+ if(compile_definitions_target)
+ list(APPEND compile_definitions ${compile_definitions_target})
+ list(REMOVE_DUPLICATES compile_definitions)
+ endif()
# NOTE: list(JOIN) requires CMake 3.12, string(CONCAT) requires CMake 3.
string(REPLACE ";" " -D" compile_definitions "${compile_definitions}")
if(compile_definitions)
@@ -28,6 +33,11 @@ function(get_compile_flags _compile_flags)
get_directory_property(compile_options
DIRECTORY "src/nvim"
COMPILE_OPTIONS)
+ get_target_property(compile_options_target nvim COMPILE_OPTIONS)
+ if(compile_options_target)
+ list(APPEND compile_options ${compile_options_target})
+ list(REMOVE_DUPLICATES compile_options)
+ endif()
# NOTE: list(JOIN) requires CMake 3.12.
string(REPLACE ";" " " compile_options "${compile_options}")
string(REPLACE
diff --git a/src/nvim/CMakeLists.txt b/src/nvim/CMakeLists.txt
index 22f3153230..06957dd77d 100644
--- a/src/nvim/CMakeLists.txt
+++ b/src/nvim/CMakeLists.txt
@@ -552,19 +552,19 @@ if(CLANG_ASAN_UBSAN)
else()
set(SANITIZE_RECOVER -fno-sanitize-recover) # Clang 3.5-
endif()
- set_property(TARGET nvim APPEND_STRING PROPERTY COMPILE_FLAGS "-DEXITFREE ")
- set_property(TARGET nvim APPEND_STRING PROPERTY COMPILE_FLAGS "${SANITIZE_RECOVER} -fno-omit-frame-pointer -fno-optimize-sibling-calls -fsanitize=address -fsanitize=undefined -fsanitize-blacklist=${PROJECT_SOURCE_DIR}/src/.asan-blacklist")
+ 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)
set_property(TARGET nvim APPEND_STRING PROPERTY LINK_FLAGS "-fsanitize=address -fsanitize=undefined ")
elseif(CLANG_MSAN)
message(STATUS "Enabling Clang memory sanitizer for nvim.")
- set_property(TARGET nvim APPEND_STRING PROPERTY COMPILE_FLAGS "-DEXITFREE ")
- set_property(TARGET nvim APPEND_STRING PROPERTY COMPILE_FLAGS "-fsanitize=memory -fsanitize-memory-track-origins -fno-omit-frame-pointer -fno-optimize-sibling-calls ")
+ set_property(TARGET nvim APPEND PROPERTY COMPILE_DEFINITIONS EXITFREE)
+ set_property(TARGET nvim APPEND PROPERTY COMPILE_OPTIONS -fsanitize=memory -fsanitize-memory-track-origins -fno-omit-frame-pointer -fno-optimize-sibling-calls)
set_property(TARGET nvim APPEND_STRING PROPERTY LINK_FLAGS "-fsanitize=memory -fsanitize-memory-track-origins ")
elseif(CLANG_TSAN)
message(STATUS "Enabling Clang thread sanitizer for nvim.")
- set_property(TARGET nvim APPEND_STRING PROPERTY COMPILE_FLAGS "-DEXITFREE ")
- set_property(TARGET nvim APPEND_STRING PROPERTY COMPILE_FLAGS "-fsanitize=thread ")
- set_property(TARGET nvim APPEND_STRING PROPERTY COMPILE_FLAGS "-fPIE ")
+ set_property(TARGET nvim APPEND PROPERTY COMPILE_DEFINITIONS EXITFREE)
+ set_property(TARGET nvim APPEND PROPERTY COMPILE_OPTIONS -fsanitize=thread)
+ set_property(TARGET nvim APPEND PROPERTY COMPILE_OPTIONS -fPIE)
set_property(TARGET nvim APPEND_STRING PROPERTY LINK_FLAGS "-fsanitize=thread ")
endif()
diff --git a/src/nvim/message.c b/src/nvim/message.c
index 6e935022ca..9bea9f5c4a 100644
--- a/src/nvim/message.c
+++ b/src/nvim/message.c
@@ -582,9 +582,25 @@ static bool emsg_multiline(const char *s, bool multiline)
}
redir_write(s, strlen(s));
}
+
+ // Log (silent) errors as debug messages.
+ if (sourcing_name != NULL && sourcing_lnum != 0) {
+ DLOG("(:silent) %s (%s (line %ld))",
+ s, sourcing_name, (long)sourcing_lnum);
+ } else {
+ DLOG("(:silent) %s", s);
+ }
+
return true;
}
+ // Log editor errors as INFO.
+ if (sourcing_name != NULL && sourcing_lnum != 0) {
+ ILOG("%s (%s (line %ld))", s, sourcing_name, (long)sourcing_lnum);
+ } else {
+ ILOG("%s", s);
+ }
+
ex_exitval = 1;
// Reset msg_silent, an error causes messages to be switched back on.