From: Marco Costalba Date: Mon, 28 Dec 2015 12:14:49 +0000 (+0100) Subject: Fix assert with very high score position X-Git-Url: https://git.sesse.net/?p=stockfish;a=commitdiff_plain;h=3e4fed3a91752da394f7c912f4e5e29dc39391f6;ds=sidebyside Fix assert with very high score position In case of a very high material score, we can overflow VALUE_INFINITE. This patch fixes an assert with: position fen 7k/QQQQR3/2B5/4KN1Q/3QQ3/8/8/4R3 b - - 0 1 go depth 1 No functional change. Resolves #546 --- diff --git a/src/endgame.cpp b/src/endgame.cpp index b64b3d1b..681b290c 100644 --- a/src/endgame.cpp +++ b/src/endgame.cpp @@ -163,7 +163,7 @@ Value Endgame::operator()(const Position& pos) const { ||(pos.count(strongSide) && pos.count(strongSide)) ||(pos.count(strongSide) > 1 && opposite_colors(pos.squares(strongSide)[0], pos.squares(strongSide)[1]))) - result += VALUE_KNOWN_WIN; + result = std::min(result + VALUE_KNOWN_WIN, VALUE_MATE_IN_MAX_PLY - 1); return strongSide == pos.side_to_move() ? result : -result; }