Skip to content
Snippets Groups Projects
user avatar
Petter Reinholdtsen authored
It is undefined what left-shifting a negative number should do, and the
compiler do not like trying to shift the -64 value 57 bits to the left.

Changed the definition of OC_Q57() to left shift one bit and
use multiplication, to change the operatoin to a well defined one.
Patch from Timothy B_ Terriberry.

This get rid of this clang message:

>  ../../lib/rate.c:746:15: warning: shifting a negative signed value is undefined [-Wshift-negative-value]
>      log_scale=OC_Q57(-64);
>                ^~~~~~~~~~~
>  ../../lib/mathops.h:134:38: note: expanded from macro 'OC_Q57'
>  #define OC_Q57(_v) ((ogg_int64_t)(_v)<<57)
>                      ~~~~~~~~~~~~~~~~~^

Fixes #2321
72358ce5
History
Name Last commit Last update