Small simplification in overflow check in 'getfield'

Subtracting a small non-negative int from a non-negative int cannot
overflow, and adding a non-negative int to INT_MIN cannot overflow.
This commit is contained in:
Roberto Ierusalimschy
2022-09-23 10:57:35 -03:00
parent a1089b415a
commit cfbe378f90
2 changed files with 10 additions and 3 deletions

View File

@@ -825,8 +825,17 @@ checkerr("missing", os.time, {hour = 12}) -- missing date
if string.packsize("i") == 4 then -- 4-byte ints
checkerr("field 'year' is out-of-bound", os.time,
{year = -(1 << 31) + 1899, month = 1, day = 1})
checkerr("field 'year' is out-of-bound", os.time,
{year = -(1 << 31), month = 1, day = 1})
if math.maxinteger > 2^31 then -- larger lua_integer?
checkerr("field 'year' is out-of-bound", os.time,
{year = (1 << 31) + 1900, month = 1, day = 1})
end
end
if not _port then
-- test Posix-specific modifiers
assert(type(os.date("%Ex")) == 'string')