From 156635749bfc9fc8e71aa8c44d7bd2cfe7a78457 Mon Sep 17 00:00:00 2001 From: Marco Costalba Date: Sat, 27 Apr 2013 13:07:12 +0200 Subject: [PATCH] Fix a 'value > VALUE_INFINITE' assert This fixes an assert while testing with debug on. Assert was due to static null pruning returning value eval - futility_margin(depth, (ss-1)->futilityMoveCount) That was sometimes higher than VALUE_INFINITE triggering an assert at the caller site. Because eval con be equal to ttValue and anyhow is read from TT that can be corrupted in SMP case, we need to sanity check it before to use. bench: 4176431 --- src/search.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/search.cpp b/src/search.cpp index cf640a0a..6bdf255c 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -646,6 +646,7 @@ namespace { && !inCheck && eval - futility_margin(depth, (ss-1)->futilityMoveCount) >= beta && abs(beta) < VALUE_MATE_IN_MAX_PLY + && abs(eval) < VALUE_KNOWN_WIN && pos.non_pawn_material(pos.side_to_move())) return eval - futility_margin(depth, (ss-1)->futilityMoveCount); -- 2.39.2