libavcodec/atrac3plus.c:1719: error: Integer Overflow L2
  (32 - [-2+min(64, `bc->bits_left`), -2+max(65, `bc->bits_left`)]):unsigned32 by call to `bitstream_read_vlc`.

libavcodec/atrac3plus.c:1696:1: Parameter `bc->bits_left`
1694.  * @return result code: 0 = OK, otherwise - error code
1695.  */
1696. static int decode_tones_info(BitstreamContext *bc, Atrac3pChanUnitCtx *ctx,
      ^
1697.                              int num_channels, AVCodecContext *avctx)
1698. {

libavcodec/atrac3plus.c:1706:38: Call
1704.                sizeof(*ctx->channels[ch_num].tones_info) * ATRAC3P_SUBBANDS);
1705. 
1706.     ctx->waves_info->tones_present = bitstream_read_bit(bc);
                                           ^
1707.     if (!ctx->waves_info->tones_present)
1708.         return 0;

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/atrac3plus.c:1712:39: Call
1710.     memset(ctx->waves_info->waves, 0, sizeof(ctx->waves_info->waves));
1711. 
1712.     ctx->waves_info->amplitude_mode = bitstream_read_bit(bc);
                                            ^
1713.     if (!ctx->waves_info->amplitude_mode) {
1714.         avpriv_report_missing_feature(avctx, "GHA amplitude mode 0");

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/atrac3plus.c:1719:9: Call
1717. 
1718.     ctx->waves_info->num_tone_bands =
1719.         bitstream_read_vlc(bc, tone_vlc_tabs[0].table,
              ^
1720.                            tone_vlc_tabs[0].bits, 1) + 1;
1721. 

libavcodec/bitstream.h:313:1: Parameter `bc->bits_left`
  311.  * If the VLC code is invalid and max_depth > 1, then the number of bits removed
  312.  * is undefined. */
  313. static inline int bitstream_read_vlc(BitstreamContext *bc, VLC_TYPE (*table)[2],
       ^
  314.                                      int bits, int max_depth)
  315. {

libavcodec/bitstream.h:317:20: Call
  315. {
  316.     int nb_bits;
  317.     unsigned idx = bitstream_peek(bc, bits);
                          ^
  318.     int code = table[idx][0];
  319.     int n    = table[idx][1];

libavcodec/bitstream.h:215:1: Parameter `n`
    213. /* Return n bits from the buffer, but do not change the buffer state.
    214.  * n has to be in the 0-32 range. */
    215. static inline unsigned bitstream_peek(BitstreamContext *bc, unsigned n)
         ^
    216. {
    217.     if (n > bc->bits_left)

libavcodec/bitstream.h:218:9: Call
    216. {
    217.     if (n > bc->bits_left)
    218.         refill_32(bc);
                 ^
    219. 
    220.     return show_val(bc, 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, bc->bits_left), -2+max(65, bc->bits_left)]):unsigned32 by call to `bitstream_read_vlc` 
      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 int decode_tones_info(BitstreamContext *bc, Atrac3pChanUnitCtx *ctx,\n                             int num_channels, AVCodecContext *avctx)\n{\n    int ch_num, i, ret;\n    int band_has_tones[16];\n    for (ch_num = 0; ch_num < num_channels; ch_num++)\n        memset(ctx->channels[ch_num].tones_info, 0,\n               sizeof(*ctx->channels[ch_num].tones_info) * ATRAC3P_SUBBANDS);\n    ctx->waves_info->tones_present = bitstream_read_bit(bc);\n    if (!ctx->waves_info->tones_present)\n        return 0;\n    memset(ctx->waves_info->waves, 0, sizeof(ctx->waves_info->waves));\n    ctx->waves_info->amplitude_mode = bitstream_read_bit(bc);\n    if (!ctx->waves_info->amplitude_mode) {\n        avpriv_report_missing_feature(avctx, "GHA amplitude mode 0");\n        return AVERROR_PATCHWELCOME;\n    }\n    ctx->waves_info->num_tone_bands =\n        bitstream_read_vlc(bc, tone_vlc_tabs[0].table,\n                           tone_vlc_tabs[0].bits, 1) + 1;\n    if (num_channels == 2) {\n        get_subband_flags(bc, ctx->waves_info->tone_sharing, ctx->waves_info->num_tone_bands);\n        get_subband_flags(bc, ctx->waves_info->tone_master,  ctx->waves_info->num_tone_bands);\n        if (get_subband_flags(bc, ctx->waves_info->phase_shift,\n                              ctx->waves_info->num_tone_bands)) {\n            avpriv_report_missing_feature(avctx, "GHA Phase shifting");\n            return AVERROR_PATCHWELCOME;\n        }\n    }\n    ctx->waves_info->tones_index = 0;\n    for (ch_num = 0; ch_num < num_channels; ch_num++) {\n        for (i = 0; i < ctx->waves_info->num_tone_bands; i++)\n            band_has_tones[i] = !ch_num ? 1 : !ctx->waves_info->tone_sharing[i];\n        decode_tones_envelope(bc, ctx, ch_num, band_has_tones);\n        if ((ret = decode_band_numwavs(bc, ctx, ch_num, band_has_tones,\n                                       avctx)) < 0)\n            return ret;\n        decode_tones_frequency(bc, ctx, ch_num, band_has_tones);\n        decode_tones_amplitude(bc, ctx, ch_num, band_has_tones);\n        decode_tones_phase(bc, ctx, ch_num, band_has_tones);\n    }\n    if (num_channels == 2) {\n        for (i = 0; i < ctx->waves_info->num_tone_bands; i++) {\n            if (ctx->waves_info->tone_sharing[i])\n                ctx->channels[1].tones_info[i] = ctx->channels[0].tones_info[i];\n            if (ctx->waves_info->tone_master[i])\n                FFSWAP(Atrac3pWavesData, ctx->channels[0].tones_info[i],\n                       ctx->channels[1].tones_info[i]);\n        }\n    }\n    return 0;\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 int bitstream_read_vlc(BitstreamContext *bc, VLC_TYPE (*table)[2],\n                                     int bits, int max_depth)\n{\n    int nb_bits;\n    unsigned idx = bitstream_peek(bc, bits);\n    int code = table[idx][0];\n    int n    = table[idx][1];\n    if (max_depth > 1 && n < 0) {\n        skip_remaining(bc, bits);\n        code = set_idx(bc, code, &n, &nb_bits, table);\n        if (max_depth > 2 && n < 0) {\n            skip_remaining(bc, nb_bits);\n            code = set_idx(bc, code, &n, &nb_bits, table);\n        }\n    }\n    skip_remaining(bc, n);\n    return code;\n}', 'static inline unsigned bitstream_peek(BitstreamContext *bc, unsigned n)\n{\n    if (n > bc->bits_left)\n        refill_32(bc);\n    return show_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}']