mirror of
https://github.com/HChaZZY/Stockfish.git
synced 2025-12-20 09:06:45 +08:00
Score enum should be at least 32 bits
The compiler is allowed to chose the size of an enum variable based on the values it is expected to store. So force the compiler to use at least a 32 bit integer type for the Score. MSVC and Intel do not change, while gcc under -O3 is affected by this change. No functional change. Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
@@ -56,7 +56,7 @@ enum Value {
|
||||
/// integer (enum), first LSB 16 bits are used to store endgame
|
||||
/// value, while upper bits are used for midgame value.
|
||||
|
||||
enum Score {};
|
||||
enum Score { ENSURE_32_BIT_SIZE = 1 << 31 };
|
||||
|
||||
inline Value eg_value(Score s) { return Value(int16_t(s & 0xffff)); }
|
||||
inline Value mg_value(Score s) { return Value((int(s) + 32768) >> 16); }
|
||||
|
||||
Reference in New Issue
Block a user