]> git.sesse.net Git - stockfish/blobdiff - src/search.cpp
Fix undefined behavior in search.
[stockfish] / src / search.cpp
index 5bea5945c244deb7ace3e5ad073dd8ef26847631..fa479c4b8272b9896081c0f07c7da86e06a15797 100644 (file)
@@ -1178,7 +1178,9 @@ moves_loop:  // When in check, search starts here
             // 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<NonPV>(pos, ss + 1, -(alpha + 1), -alpha, d, true);