diff --git a/src/idl_parser.cpp b/src/idl_parser.cpp index ad5ff2ac6371bd38ab13529b852253290eeee14c..077320bfadd4542e53c73dc55e36beb74360a09f 100644 --- a/src/idl_parser.cpp +++ b/src/idl_parser.cpp @@ -49,7 +49,8 @@ static void Error(const std::string &msg) { // Ensure that integer values we parse fit inside the declared integer type. static void CheckBitsFit(int64_t val, size_t bits) { - auto mask = (1ll << bits) - 1; // Bits we allow to be used. + // Bits we allow to be used. + auto mask = static_cast<int64_t>((1ull << bits) - 1); if (bits < 64 && (val & ~mask) != 0 && // Positive or unsigned. (val | mask) != -1) // Negative.