From 9fe9ff00823a0d1e989fcfc45410396e94345987 Mon Sep 17 00:00:00 2001 From: mstembera Date: Tue, 27 Dec 2022 16:44:32 -0800 Subject: [PATCH] Fix stack initialization This fixes a bug where on line 278 the Stack::staticEvals are initialized to 0. However VALUE_NONE is defined to be 32002 so this is a bug in master. It is probably due to the calculation of improvement, where staticEval prior to rootPos can be accessed. https://tests.stockfishchess.org/tests/view/63ab91cf39af998100ce1666 LLR: 2.94 (-2.94,2.94) <0.00,2.00> Total: 53736 W: 14285 L: 13955 D: 25496 Ptnml(0-2): 121, 5921, 14500, 6159, 167 https://tests.stockfishchess.org/tests/view/63b2af5ee28ed36c814bed52 LLR: 2.94 (-2.94,2.94) <-1.75,0.25> Total: 33776 W: 9130 L: 8934 D: 15712 Ptnml(0-2): 14, 3240, 10185, 3434, 15 closes https://github.com/official-stockfish/Stockfish/pull/4320 Bench: 4068510 --- src/search.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/search.cpp b/src/search.cpp index d0ed44fa..d27b21d2 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -276,8 +276,11 @@ void Thread::search() { int iterIdx = 0; std::memset(ss-7, 0, 10 * sizeof(Stack)); - for (int i = 7; i > 0; i--) + for (int i = 7; i > 0; --i) + { (ss-i)->continuationHistory = &this->continuationHistory[0][0][NO_PIECE][0]; // Use as a sentinel + (ss-i)->staticEval = VALUE_NONE; + } for (int i = 0; i <= MAX_PLY + 2; ++i) (ss+i)->ply = i; -- 2.39.2