My suggestion is that (EMACS_INT)(int)(i) > MOST_POSITIVE_FIXNUM
would avoid the warning. But we would not put the casts in the macro FIXNUM_OVERFLOW_P itself, since that would negate the purpose of the macro. Instead we would put the cast in the argument, when the argument is an `int' anyway.