I think it's probably from `fpos` being a `size_t`, which is then upcast to a `uintmax_t`, which is 64-bits instead of 32-bits, so there's no possible way `fpos` could be greater than `INT64_MAX`.  I"m not quite sure how to fix this in a way that it won't complain though. :-(