mirror of
https://github.com/DeusData/codebase-memory-mcp.git
synced 2026-11-03 08:03:38 +08:00
fix(cli): drop the POSIX probe-counter store that Clang 23 rejects
`g_mcp_command_path_probe_counter` is only ever read inside `cbm_json_mcp_probe_command_path`, which is compiled for Windows alone. On POSIX test builds the setter stored a pointer nothing read, and Clang 23 (Homebrew LLVM 23.1.0, which `brew install llvm` now pours on the macOS LSan leg) flags that as `-Wunused-but-set-global`; with `-Werror` the whole test-runner build dies at `src/cli/cli.c:1768:21`. Keep the counter where a probe can happen (Windows) and make the POSIX setter an explicit no-op with the reason spelled out. The three tests that install a counter keep asserting it stays at zero on every platform, which on POSIX is exactly what "no classifier" means. Verified in the failing arena: `origin/main` `src/cli/cli.c` fails under clang 23.1.1 with the CI diagnostic; with this change it compiles clean, as do all 105 built `src` TUs and all 155 test + extraction TUs under the same flags. `cli` suite: 292 passed with Homebrew LLVM 22. Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
This commit is contained in:
@@ -1765,14 +1765,25 @@ static bool cbm_json_mcp_command_path_probe_safe(const char *command) {
|
||||
#endif
|
||||
|
||||
#ifdef CBM_CLI_ENABLE_TEST_API
|
||||
#ifdef _WIN32
|
||||
static CBM_TLS int *g_mcp_command_path_probe_counter = NULL;
|
||||
#endif
|
||||
|
||||
bool cbm_mcp_command_path_probe_safe_for_testing(const char *command, bool windows) {
|
||||
return cbm_json_mcp_command_path_probe_safe_for_platform(command, windows);
|
||||
}
|
||||
|
||||
void cbm_set_mcp_command_path_probe_counter_for_testing(int *counter) {
|
||||
#ifdef _WIN32
|
||||
g_mcp_command_path_probe_counter = counter;
|
||||
#else
|
||||
/* The command-path classifier (cbm_json_mcp_probe_command_path) is compiled
|
||||
* for Windows only, so on POSIX there is no probe to count. The tests still
|
||||
* install a counter on every platform and assert it stays at zero; a pointer
|
||||
* stored here but never read is what Clang 23 rejects under -Werror
|
||||
* (-Wunused-but-set-global). */
|
||||
(void)counter;
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
Reference in New Issue
Block a user