libavcodec/eamad.c:206: error: Integer Overflow L2
  (32 - [-2+min(64, `s->bc.bits_left`), -1+max(64, `s->bc.bits_left`)]):unsigned32 by call to `bitstream_read`.

libavcodec/eamad.c:197:1: Parameter `s->bc.bits_left`
195. }
196. 
197. static void decode_mb(MadContext *s, AVFrame *frame, int inter)
     ^
198. {
199.     int mv_map = 0;

libavcodec/eamad.c:204:17: Call
202. 
203.     if (inter) {
204.         int v = bitstream_decode210(&s->bc);
                     ^
205.         if (v < 2) {
206.             mv_map = v ? bitstream_read(&s->bc, 6) : 63;

libavcodec/bitstream.h:372:1: Parameter `bc->bits_left`
  370. 
  371. /* Return decoded truncated unary code for the values 2, 1, 0. */
  372. static inline int bitstream_decode210(BitstreamContext *bc)
       ^
  373. {
  374.     if (bitstream_read_bit(bc))

libavcodec/bitstream.h:374:9: Call
  372. static inline int bitstream_decode210(BitstreamContext *bc)
  373. {
  374.     if (bitstream_read_bit(bc))
               ^
  375.         return 0;
  376.     else

libavcodec/bitstream.h:145:1: Parameter `bc->bits_left`
    143. 
    144. /* Return one bit from the buffer. */
    145. static inline unsigned bitstream_read_bit(BitstreamContext *bc)
         ^
    146. {
    147.     if (!bc->bits_left)

libavcodec/bitstream.h:150:12: Call
    148.         refill_64(bc);
    149. 
    150.     return get_val(bc, 1);
                    ^
    151. }
    152. 

libavcodec/bitstream.h:130:1: Parameter `n`
      128. }
      129. 
      130. static inline uint64_t get_val(BitstreamContext *bc, unsigned n)
           ^
      131. {
      132. #ifdef BITSTREAM_READER_LE

libavcodec/bitstream.h:139:5: Assignment
      137.     bc->bits <<= n;
      138. #endif
      139.     bc->bits_left -= n;
               ^
      140. 
      141.     return ret;

libavcodec/eamad.c:206:26: Call
204.         int v = bitstream_decode210(&s->bc);
205.         if (v < 2) {
206.             mv_map = v ? bitstream_read(&s->bc, 6) : 63;
                              ^
207.             mv_x = decode_motion(&s->bc);
208.             mv_y = decode_motion(&s->bc);

libavcodec/bitstream.h:183:1: Parameter `n`
  181. 
  182. /* Return n bits from the buffer. n has to be in the 0-32 range. */
  183. static inline uint32_t bitstream_read(BitstreamContext *bc, unsigned n)
       ^
  184. {
  185.     if (!n)

libavcodec/bitstream.h:189:9: Call
  187. 
  188.     if (n > bc->bits_left) {
  189.         refill_32(bc);
               ^
  190.         if (bc->bits_left < 32)
  191.             bc->bits_left = n;

libavcodec/bitstream.h:60:1: <RHS trace>
58. }
59. 
60. static inline void refill_32(BitstreamContext *bc)
    ^
61. {
62.     if (bc->ptr >= bc->buffer_end)

libavcodec/bitstream.h:60:1: Parameter `bc->bits_left`
    58. }
    59. 
    60. static inline void refill_32(BitstreamContext *bc)
        ^
    61. {
    62.     if (bc->ptr >= bc->buffer_end)

libavcodec/bitstream.h:68:5: Binary operation: (32 - [-2+min(64, s->bc.bits_left), -1+max(64, s->bc.bits_left)]):unsigned32 by call to `bitstream_read` 
    66.     bc->bits       = (uint64_t)AV_RL32(bc->ptr) << bc->bits_left | bc->bits;
    67. #else
    68.     bc->bits       = bc->bits | (uint64_t)AV_RB32(bc->ptr) << (32 - bc->bits_left);
            ^
    69. #endif
    70.     bc->ptr       += 4;

static inline void refill_32(BitstreamContext *bc)
{
    if (bc->ptr >= bc->buffer_end)
        return;
#ifdef BITSTREAM_READER_LE
    bc->bits       = (uint64_t)AV_RL32(bc->ptr) << bc->bits_left | bc->bits;
#else
    bc->bits       = bc->bits | (uint64_t)AV_RB32(bc->ptr) << (32 - bc->bits_left);
#endif
    bc->ptr       += 4;
    bc->bits_left += 32;
}
['static void decode_mb(MadContext *s, AVFrame *frame, int inter)\n{\n    int mv_map = 0;\n    int mv_x, mv_y;\n    int j;\n    if (inter) {\n        int v = bitstream_decode210(&s->bc);\n        if (v < 2) {\n            mv_map = v ? bitstream_read(&s->bc, 6) : 63;\n            mv_x = decode_motion(&s->bc);\n            mv_y = decode_motion(&s->bc);\n        } else {\n            mv_map = 0;\n        }\n    }\n    for (j=0; j<6; j++) {\n        if (mv_map & (1<<j)) {\n            int add = 2 * decode_motion(&s->bc);\n            comp_block(s, frame, s->mb_x, s->mb_y, j, mv_x, mv_y, add);\n        } else {\n            s->bdsp.clear_block(s->block);\n            decode_block_intra(s, s->block);\n            idct_put(s, frame, s->block, s->mb_x, s->mb_y, j);\n        }\n    }\n}', 'static inline int bitstream_decode210(BitstreamContext *bc)\n{\n    if (bitstream_read_bit(bc))\n        return 0;\n    else\n        return 2 - bitstream_read_bit(bc);\n}', 'static inline unsigned bitstream_read_bit(BitstreamContext *bc)\n{\n    if (!bc->bits_left)\n        refill_64(bc);\n    return get_val(bc, 1);\n}', 'static inline uint64_t get_val(BitstreamContext *bc, unsigned n)\n{\n#ifdef BITSTREAM_READER_LE\n    uint64_t ret = bc->bits & ((UINT64_C(1) << n) - 1);\n    bc->bits >>= n;\n#else\n    uint64_t ret = bc->bits >> (64 - n);\n    bc->bits <<= n;\n#endif\n    bc->bits_left -= n;\n    return ret;\n}', 'static inline uint32_t bitstream_read(BitstreamContext *bc, unsigned n)\n{\n    if (!n)\n        return 0;\n    if (n > bc->bits_left) {\n        refill_32(bc);\n        if (bc->bits_left < 32)\n            bc->bits_left = n;\n    }\n    return get_val(bc, n);\n}', 'static inline void refill_32(BitstreamContext *bc)\n{\n    if (bc->ptr >= bc->buffer_end)\n        return;\n#ifdef BITSTREAM_READER_LE\n    bc->bits       = (uint64_t)AV_RL32(bc->ptr) << bc->bits_left | bc->bits;\n#else\n    bc->bits       = bc->bits | (uint64_t)AV_RB32(bc->ptr) << (32 - bc->bits_left);\n#endif\n    bc->ptr       += 4;\n    bc->bits_left += 32;\n}']