libavcodec/opus_celt.c:599: error: Integer Overflow L2
  ([0, +oo] - 1):unsigned32 by call to `opus_getrawbits`.

libavcodec/opus_celt.c:586:1: Parameter `rc->rb.cachelen`
584. }
585. 
586. static void celt_decode_final_energy(CeltContext *s, OpusRangeCoder *rc,
     ^
587.                                      int bits_left)
588. {

libavcodec/opus_celt.c:599:22: Call
597.                 int q2;
598.                 float offset;
599.                 q2 = opus_getrawbits(rc, 1);
                          ^
600.                 offset = (q2 - 0.5f) * (1 << (14 - s->fine_bits[i] - 1)) / 16384.0f;
601.                 s->frame[j].energy[i] += offset;

libavcodec/opus.h:265:1: <LHS trace>
263.  * CELT: read 1-25 raw bits at the end of the frame, backwards byte-wise
264.  */
265. static av_always_inline unsigned int opus_getrawbits(OpusRangeCoder *rc, unsigned int count)
     ^
266. {
267.     unsigned int value = 0;

libavcodec/opus.h:265:1: Parameter `count`
  263.  * CELT: read 1-25 raw bits at the end of the frame, backwards byte-wise
  264.  */
  265. static av_always_inline unsigned int opus_getrawbits(OpusRangeCoder *rc, unsigned int count)
       ^
  266. {
  267.     unsigned int value = 0;

libavcodec/opus.h:265:1: <RHS trace>
263.  * CELT: read 1-25 raw bits at the end of the frame, backwards byte-wise
264.  */
265. static av_always_inline unsigned int opus_getrawbits(OpusRangeCoder *rc, unsigned int count)
     ^
266. {
267.     unsigned int value = 0;

libavcodec/opus.h:265:1: Parameter `count`
  263.  * CELT: read 1-25 raw bits at the end of the frame, backwards byte-wise
  264.  */
  265. static av_always_inline unsigned int opus_getrawbits(OpusRangeCoder *rc, unsigned int count)
       ^
  266. {
  267.     unsigned int value = 0;

libavcodec/opus.h:277:5: Binary operation: ([0, +oo] - 1):unsigned32 by call to `opus_getrawbits` 
  275.     value = rc->rb.cacheval & ((1<<count)-1);
  276.     rc->rb.cacheval    >>= count;
  277.     rc->rb.cachelen     -= count;
           ^
  278.     rc->total_read_bits += count;
  279. 

static av_always_inline unsigned int opus_getrawbits(OpusRangeCoder *rc, unsigned int count)
{
    unsigned int value = 0;
    while (rc->rb.bytes && rc->rb.cachelen < count) {
        rc->rb.cacheval |= *--rc->rb.position << rc->rb.cachelen;
        rc->rb.cachelen += 8;
        rc->rb.bytes--;
    }
    value = rc->rb.cacheval & ((1<<count)-1);
    rc->rb.cacheval    >>= count;
    rc->rb.cachelen     -= count;
    rc->total_read_bits += count;
    return value;
}
['static void celt_decode_final_energy(CeltContext *s, OpusRangeCoder *rc,\n                                     int bits_left)\n{\n    int priority, i, j;\n    for (priority = 0; priority < 2; priority++) {\n        for (i = s->startband; i < s->endband && bits_left >= s->coded_channels; i++) {\n            if (s->fine_priority[i] != priority || s->fine_bits[i] >= CELT_MAX_FINE_BITS)\n                continue;\n            for (j = 0; j < s->coded_channels; j++) {\n                int q2;\n                float offset;\n                q2 = opus_getrawbits(rc, 1);\n                offset = (q2 - 0.5f) * (1 << (14 - s->fine_bits[i] - 1)) / 16384.0f;\n                s->frame[j].energy[i] += offset;\n                bits_left--;\n            }\n        }\n    }\n}', 'static av_always_inline unsigned int opus_getrawbits(OpusRangeCoder *rc, unsigned int count)\n{\n    unsigned int value = 0;\n    while (rc->rb.bytes && rc->rb.cachelen < count) {\n        rc->rb.cacheval |= *--rc->rb.position << rc->rb.cachelen;\n        rc->rb.cachelen += 8;\n        rc->rb.bytes--;\n    }\n    value = rc->rb.cacheval & ((1<<count)-1);\n    rc->rb.cacheval    >>= count;\n    rc->rb.cachelen     -= count;\n    rc->total_read_bits += count;\n    return value;\n}']