From 6d76699e44f2ed0fb2368ccf0a19ae692a2d4697 Mon Sep 17 00:00:00 2001 From: Scott Gasch Date: Thu, 3 Sep 2026 17:01:58 -0700 Subject: Fix all build warnings across release/DEBUG/TEST profiles Clean gmake GENETIC=1 PERF_COUNTERS=1 MP=1 SIXTYFOUR=1 build had 100 warnings; DEBUG=1 and TEST=1 builds had more once actually exercised. - OFFSET_OF/CONTAINING_STRUCT (chess.h) and PTR_TO_ALLOC_HASH (unix.c) truncated pointers through 32-bit ULONG before use in offset/hash arithmetic on this 64-bit build -- routed through size_t instead. - Diagnostic int<->void* round-trips (command.c, root.c, split.c, sig.c, data.c, unix.c, util.c) widened/narrowed via size_t to avoid implicit truncation. - ABS_DIFF on unsigned COOR now casts to int before abs(). - Dropped -fexpensive-optimizations (GCC-only, clang silently ignores it) from GNUmakefile. - Removed genuinely dead variables (book.c, gamelist.c, split.c, testgenerate.c, testhash.c). - Guarded DEBUG/PERF_COUNTERS/_X86_-only variables and the _CMEvidenceBucket helper under the #ifdef that actually reads them, since ASSERT/EVAL_TERM/KEEP_TRACK_OF_FIRST_MOVE_FHs compile away outside those builds. - Added missing prototypes for SlidePawn, SlidePawnWithoutSigs, SlidePieceWithoutSigs (move.c), previously undeclared in chess.h. - Removed dead _SystemIsRoot (unix.c). Verified via precommit_check.sh: TEST=1 self-test suite passes, DEBUG=1 smoke test (10 random ECM positions, sd 4) passes with no crashes/assertions, release build restored -- all three profiles now build with zero warnings. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_014Cmv11sJZqVfanrPh6UnWE --- src/split.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'src/split.c') diff --git a/src/split.c b/src/split.c index b3fc659..28d5ce0 100755 --- a/src/split.c +++ b/src/split.c @@ -156,8 +156,8 @@ Return value: SEARCHER_THREAD_CONTEXT *ctx = &(g_HelperThreads[uMyId].ctx); ULONG u, v; MOVE mv; - ULONG uIdleLoops = 0; #ifdef PERF_COUNTERS + ULONG uIdleLoops = 0; UINT64 u64Then; UINT64 u64Now; #endif @@ -179,7 +179,9 @@ Return value: // // By now the split info is populated. // +#ifdef PERF_COUNTERS uIdleLoops = 0; +#endif ReInitializeSearcherContext(&(g_SplitInfo[u].sRootPosition), ctx); ctx->pSplitInfo[0] = &(g_SplitInfo[u]); @@ -212,9 +214,9 @@ Return value: { UtilPanic(CANNOT_INITIALIZE_SPLIT, &ctx->sPosition, - (void *)mv.uMove, + (void *)(size_t)mv.uMove, &g_SplitInfo[u], - (void *)v, + (void *)(size_t)v, __FILE__, __LINE__); } v++; @@ -1056,7 +1058,6 @@ Return value: SCORE iAlpha = 0; SCORE iBeta; SCORE iBestScore = 0; - SCORE iRoughEval; ULONG uOrigDepth; ULONG uDepth; ULONG uMoveNum = 0; -- cgit v1.3