commit 6ad2a130541cf684b2b3c536e1d336efd5827118
parent b2722181b001b5bedb679f35e6ddd22579b39f2e
Author: bfredl <bjorn.linse@gmail.com>
Date: Mon, 16 Jun 2025 12:27:41 +0200
Merge pull request #34495 from bfredl/debwithrelinfo
fix(build): disable problematic marktree assert in RelWithDebInfo builds
Diffstat:
3 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
@@ -156,8 +156,8 @@ set(NVIM_API_PRERELEASE true)
# We _want_ assertions in RelWithDebInfo build-type.
if(CMAKE_C_FLAGS_RELWITHDEBINFO MATCHES DNDEBUG)
- string(REPLACE "-DNDEBUG" "" CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO}")
- string(REPLACE "/DNDEBUG" "" CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO}")
+ string(REPLACE "-DNDEBUG" "-DRELDEBUG" CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO}")
+ string(REPLACE "/DNDEBUG" "/DRELDEBUG" CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO}")
string(REPLACE " " " " CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO}") # Remove duplicate whitespace
endif()
diff --git a/src/nvim/decoration.c b/src/nvim/decoration.c
@@ -1068,7 +1068,10 @@ void buf_signcols_count_range(buf_T *buf, int row1, int row2, int add, TriState
int prevwidth = MIN(SIGN_SHOW_MAX, count[i] - add);
if (clear != kNone && prevwidth > 0) {
buf->b_signcols.count[prevwidth - 1]--;
+#ifndef RELDEBUG
+ // TODO(bfredl): correct marktree splicing so that this doesn't fail
assert(buf->b_signcols.count[prevwidth - 1] >= 0);
+#endif
}
int width = MIN(SIGN_SHOW_MAX, count[i]);
if (clear != kTrue && width > 0) {
diff --git a/src/nvim/marktree.c b/src/nvim/marktree.c
@@ -372,7 +372,13 @@ static void unintersect_node(MarkTree *b, MTNode *x, uint64_t id, bool strict)
}
}
if (strict) {
+#ifndef RELDEBUG
+ // TODO(bfredl): This assert has been seen to fail for end users
+ // using RelWithDebInfo builds. While indicating an invalid state for
+ // the marktree, this error doesn't need to be fatal. The assert still
+ // needs to present in Debug builds to be able to detect regressions in tests.
assert(seen);
+#endif
}
if (seen) {