diff --git a/src/search.cpp b/src/search.cpp index 5bea5945c24..fa479c4b827 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -1178,7 +1178,9 @@ Value search(Position& pos, Stack* ss, Value alpha, Value beta, Depth depth, boo // In general we want to cap the LMR depth search at newDepth, but when // reduction is negative, we allow this move a limited search extension // beyond the first move depth. This may lead to hidden double extensions. - Depth d = std::clamp(newDepth - r, 1, newDepth + 1); + // To prevent problems when the max value is less than the min value, + // std::clamp has been replaced by a more robust implementation. + Depth d = std::max(1, std::min(newDepth - r, newDepth + 1)); value = -search(pos, ss + 1, -(alpha + 1), -alpha, d, true);