Fix a (bestValue == -VALUE_INFINITE) assert
[stockfish] / src / search.cpp
index 2adc2e0973e2d7778635f7fd03226a3ed55318db..95fab3f176a5ba01263a16091b257a6f73e54964 100644 (file)
@@ -802,7 +802,7 @@ namespace {
     }
     else if (Root)
         bestValue = alpha;
-    else {} // Hack to fix icc's "statement is unreachable" warning
+    else {} // Hack to fix icc's "statement is unreachable" warning FIXME
 
     // Step 1. Initialize node and poll. Polling can abort search
     ss->currentMove = ss->bestMove = threatMove = MOVE_NONE;
@@ -1233,6 +1233,10 @@ split_point_start: // At split points actual search starts from here
 
       if (Root)
       {
+          // To avoid to exit with bestValue == -VALUE_INFINITE
+          if (value > bestValue)
+              bestValue = value;
+
           // Finished searching the move. If StopRequest is true, the search
           // was aborted because the user interrupted the search or because we
           // ran out of time. In this case, the return value of the search cannot
@@ -1274,10 +1278,10 @@ split_point_start: // At split points actual search starts from here
               {
                   // Raise alpha to setup proper non-pv search upper bound
                   if (value > alpha)
-                      alpha = bestValue = value;
+                      alpha = value;
               }
               else // Set alpha equal to minimum score among the PV lines
-                  alpha = bestValue = Rml[Min(moveCount, MultiPV) - 1].pv_score; // FIXME why moveCount?
+                  alpha = Rml[Min(moveCount, MultiPV) - 1].pv_score; // FIXME why moveCount?
 
           } // PV move or new best move
       }