From 0973cc2ef63060294f790803e0525b66ee91dfee Mon Sep 17 00:00:00 2001 From: Marco Costalba Date: Sun, 27 Dec 2009 19:45:19 +0100 Subject: [PATCH] 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 --- src/value.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/value.h b/src/value.h index d54f8196..fec6516a 100644 --- a/src/value.h +++ b/src/value.h @@ -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); } -- 2.39.2