Stockfish, chess engine UCI
Leader rating list JCER = 3406
🔬 Author: Stéphane Nicolet
Check for overflow in Score * int multiplication (#969)
Add asserts to check for overflow in Score * int multiplication.
There is no overflow in current master, but it would be easy to create one as the scale of the current eval does not leave many spare bits. For instance, adding the following unused variables in master at the end of evaluate() (line 882 of evaluate.cpp) overflows:
Score s1 = score * 4; // no overflow
Score s2 = score * 5; // overflow
Assertion failed: (eg_value(result) == (i * eg_value(s))),
function operator*, file ./types.h, line 336.
Same md5 checksum as current master for non debug compiles.
No functional change.
⭐⭐⭐ Stockfish 17011118 - download