[FFmpeg-devel] [PATCH 3/3] avcodec/x86/lossless_videoencdsp: Fix warning: signed dword value exceeds bounds

Henrik Gramner henrik at gramner.com
Sun Oct 1 03:10:41 EEST 2017


On Sat, Sep 30, 2017 at 12:58 AM, Michael Niedermayer
<michael at niedermayer.cc> wrote:
> -    and                i, -2 * regsize
> +    and                i, -(2 * regsize)

regsize is defined to mmsize / 2 in the relevant case so the
expression resolves to -2 * 16 / 2

In nasm integers are 64-bit and / is unsigned division (// is signed
division). When you perform unsigned division on a negative number you
get a large number that doesn't fit inside a 32-bit immediate. E.g.
the warning is working as intended.

A better fix is to either use parentheses in the regsize definition
(e.g. what you'd normally do in an equivalent C define), or use
%assign instead of %define. Using // is kind of ugly so I rather avoid
that.


More information about the ffmpeg-devel mailing list