Fix TT write in MultiPV case.
authorAndyGrant <Andrew@grantnet.us>
Mon, 24 Feb 2020 22:32:17 +0000 (23:32 +0100)
committerJoost VandeVondele <Joost.VandeVondele@gmail.com>
Tue, 25 Feb 2020 20:10:10 +0000 (21:10 +0100)
commit2e1369d0302a87d570e509af7041a1be22b836a0
tree345d11d5a1648cc40ae7aa3b56e741d1ac5496e8
parent8352977b91d9246618c7273d59400a4a05a32e2a
Fix TT write in MultiPV case.

fixes an error reported earlier as https://github.com/official-stockfish/Stockfish/issues/2404 by @AndyGrant.

MultiPV at root shouldn't write to the TT for later lines, as that is neither the eval nor the bestmove for that position.
Fixing this error doesn't matter for playing games (http://tests.stockfishchess.org/tests/view/5dcdbd810ebc590256324a11).

However, it can lead to wrong mate announcements as reported by @uriblass. In particular the following testcase gives
wrong results for the second search, prior to this patch:

```
setoption name MultiPV value 2
position fen 5R2/2kB2p1/p2bR3/8/3p1B2/8/PPP5/2K5 b - - 0 49
go depth 40
position fen 2B2R2/3r2p1/p1kbR3/8/3p1B2/8/PPP5/2K5 b - - 8 48
go depth 40
```

fixes https://github.com/official-stockfish/Stockfish/issues/2561
closes https://github.com/official-stockfish/Stockfish/pull/2562

Only affects MultiPV search.

Bench: 4697493
src/search.cpp