Ensure ttValue != VALUE_NONE in singular extension search
authorMarco Costalba <mcostalba@gmail.com>
Sat, 21 Jun 2014 11:07:29 +0000 (13:07 +0200)
committerMarco Costalba <mcostalba@gmail.com>
Sat, 21 Jun 2014 11:07:29 +0000 (13:07 +0200)
commite8baf2b772ba8b5eacccd2a64f33faa3b0efa7a8
treed018d4cbce0f48f2e95f3153d7cff91820e54881
parent43efd7fad77eb6a84305b0e2b25e62a6f1ce5fed
Ensure ttValue != VALUE_NONE in singular extension search

The assert:

  assert(ttValue != VALUE_NONE);

Could fire for multiple reasons (although is very rare),
for instance after an IID we can have ttMove != MOVE_NONE
while ttValue is still set at VALUE_NONE.

But not only this, actually SMP is a source of corrupted
ttValue and anyhow we can detect the condition:

 ttMove != MOVE_NONE && ttValue == VALUE_NONE

even north of IID.

Reported by Ronald de Man.

It is so rare that bench didn't change.

bench: 7710548
src/search.cpp