libavcodec/takdec.c:435: error: Integer Overflow L2
  ([1, +oo] - 4):unsigned32 by call to `bitstream_read`.

libavcodec/takdec.c:435:36: Call
433.         return decode_residues(s, decoded, subframe_size);
434. 
435.     filter_order = predictor_sizes[bitstream_read(bc, 4)];
                                        ^
436. 
437.     if (prev_subframe_size > 0 && bitstream_read_bit(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:194:12: Call
  192.     }
  193. 
  194.     return get_val(bc, n);
                  ^
  195. }
  196. 

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

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

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

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: Binary operation: ([1, +oo] - 4):unsigned32 by call to `bitstream_read` 
    137.     bc->bits <<= n;
    138. #endif
    139.     bc->bits_left -= n;
             ^
    140. 
    141.     return ret;

static inline uint64_t get_val(BitstreamContext *bc, unsigned n)
{
#ifdef BITSTREAM_READER_LE
    uint64_t ret = bc->bits & ((UINT64_C(1) << n) - 1);
    bc->bits >>= n;
#else
    uint64_t ret = bc->bits >> (64 - n);
    bc->bits <<= n;
#endif
    bc->bits_left -= n;
    return ret;
}
['static int decode_subframe(TAKDecContext *s, int32_t *decoded,\n                           int subframe_size, int prev_subframe_size)\n{\n    LOCAL_ALIGNED_16(int16_t, filter, [MAX_PREDICTORS]);\n    BitstreamContext *bc = &s->bc;\n    int i, ret;\n    int dshift, size, filter_quant, filter_order;\n    memset(filter, 0, MAX_PREDICTORS * sizeof(*filter));\n    if (!bitstream_read_bit(bc))\n        return decode_residues(s, decoded, subframe_size);\n    filter_order = predictor_sizes[bitstream_read(bc, 4)];\n    if (prev_subframe_size > 0 && bitstream_read_bit(bc)) {\n        if (filter_order > prev_subframe_size)\n            return AVERROR_INVALIDDATA;\n        decoded       -= filter_order;\n        subframe_size += filter_order;\n        if (filter_order > subframe_size)\n            return AVERROR_INVALIDDATA;\n    } else {\n        int lpc_mode;\n        if (filter_order > subframe_size)\n            return AVERROR_INVALIDDATA;\n        lpc_mode = bitstream_read(bc, 2);\n        if (lpc_mode > 2)\n            return AVERROR_INVALIDDATA;\n        if ((ret = decode_residues(s, decoded, filter_order)) < 0)\n            return ret;\n        if (lpc_mode)\n            decode_lpc(decoded, lpc_mode, filter_order);\n    }\n    dshift = bits_esc4(bc);\n    size   = bitstream_read_bit(bc) + 6;\n    filter_quant = 10;\n    if (bitstream_read_bit(bc)) {\n        filter_quant -= bitstream_read(bc, 3) + 1;\n        if (filter_quant < 3)\n            return AVERROR_INVALIDDATA;\n    }\n    decode_filter_coeffs(s, filter_order, size, filter_quant, filter);\n    if ((ret = decode_residues(s, &decoded[filter_order],\n                               subframe_size - filter_order)) < 0)\n        return ret;\n    av_fast_malloc(&s->residues, &s->residues_buf_size,\n                   FFALIGN(subframe_size + 16, 16) * sizeof(*s->residues));\n    if (!s->residues)\n        return AVERROR(ENOMEM);\n    memset(s->residues, 0, s->residues_buf_size);\n    for (i = 0; i < filter_order; i++)\n        s->residues[i] = *decoded++ >> dshift;\n    for (i = 0; i < subframe_size - filter_order; i++) {\n        int v = 1 << (filter_quant - 1);\n        v += s->adsp.scalarproduct_int16(&s->residues[i], filter,\n                                         FFALIGN(filter_order, 16));\n        v = (av_clip_intp2(v >> filter_quant, 13) << dshift) - *decoded;\n        *decoded++ = v;\n        s->residues[filter_order + i] = v >> dshift;\n    }\n    emms_c();\n    return 0;\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 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}']