libavcodec/aacdec.c:1314: error: Uninitialized Value
  The value read from re_size_plus8 was never initialized.

libavcodec/aacdec.c:1314:29: 
1312.                             nnz = cb_idx >> 8 & 15;
1313.                             bits = nnz ? GET_CACHE(re, gb) : 0;
1314.                             LAST_SKIP_BITS(re, gb, nnz);
                                  ^
1315.                             cf = VMUL4S(cf, vq, cb_idx, bits, sf + idx);
1316.                         } while (len -= 4);

static int decode_spectrum_and_dequant(AACContext *ac, float coef[1024],
                                       GetBitContext *gb, const float sf[120],
                                       int pulse_present, const Pulse *pulse,
                                       const IndividualChannelStream *ics,
                                       enum BandType band_type[120])
{
    int i, k, g, idx = 0;
    const int c = 1024 / ics->num_windows;
    const uint16_t *offsets = ics->swb_offset;
    float *coef_base = coef;
    for (g = 0; g < ics->num_windows; g++)
        memset(coef + g * 128 + offsets[ics->max_sfb], 0, sizeof(float) * (c - offsets[ics->max_sfb]));
    for (g = 0; g < ics->num_window_groups; g++) {
        unsigned g_len = ics->group_len[g];
        for (i = 0; i < ics->max_sfb; i++, idx++) {
            const unsigned cbt_m1 = band_type[idx] - 1;
            float *cfo = coef + offsets[i];
            int off_len = offsets[i + 1] - offsets[i];
            int group;
            if (cbt_m1 >= INTENSITY_BT2 - 1) {
                for (group = 0; group < g_len; group++, cfo+=128) {
                    memset(cfo, 0, off_len * sizeof(float));
                }
            } else if (cbt_m1 == NOISE_BT - 1) {
                for (group = 0; group < g_len; group++, cfo+=128) {
                    float scale;
                    float band_energy;
                    for (k = 0; k < off_len; k++) {
                        ac->random_state  = lcg_random(ac->random_state);
                        cfo[k] = ac->random_state;
                    }
                    band_energy = ac->dsp.scalarproduct_float(cfo, cfo, off_len);
                    scale = sf[idx] / sqrtf(band_energy);
                    ac->dsp.vector_fmul_scalar(cfo, cfo, scale, off_len);
                }
            } else {
                const float *vq = ff_aac_codebook_vector_vals[cbt_m1];
                const uint16_t *cb_vector_idx = ff_aac_codebook_vector_idx[cbt_m1];
                VLC_TYPE (*vlc_tab)[2] = vlc_spectral[cbt_m1].table;
                OPEN_READER(re, gb);
                switch (cbt_m1 >> 1) {
                case 0:
                    for (group = 0; group < g_len; group++, cfo+=128) {
                        float *cf = cfo;
                        int len = off_len;
                        do {
                            int code;
                            unsigned cb_idx;
                            UPDATE_CACHE(re, gb);
                            GET_VLC(code, re, gb, vlc_tab, 8, 2);
                            cb_idx = cb_vector_idx[code];
                            cf = VMUL4(cf, vq, cb_idx, sf + idx);
                        } while (len -= 4);
                    }
                    break;
                case 1:
                    for (group = 0; group < g_len; group++, cfo+=128) {
                        float *cf = cfo;
                        int len = off_len;
                        do {
                            int code;
                            unsigned nnz;
                            unsigned cb_idx;
                            uint32_t bits;
                            UPDATE_CACHE(re, gb);
                            GET_VLC(code, re, gb, vlc_tab, 8, 2);
                            cb_idx = cb_vector_idx[code];
                            nnz = cb_idx >> 8 & 15;
                            bits = nnz ? GET_CACHE(re, gb) : 0;
                            LAST_SKIP_BITS(re, gb, nnz);
                            cf = VMUL4S(cf, vq, cb_idx, bits, sf + idx);
                        } while (len -= 4);
                    }
                    break;
                case 2:
                    for (group = 0; group < g_len; group++, cfo+=128) {
                        float *cf = cfo;
                        int len = off_len;
                        do {
                            int code;
                            unsigned cb_idx;
                            UPDATE_CACHE(re, gb);
                            GET_VLC(code, re, gb, vlc_tab, 8, 2);
                            cb_idx = cb_vector_idx[code];
                            cf = VMUL2(cf, vq, cb_idx, sf + idx);
                        } while (len -= 2);
                    }
                    break;
                case 3:
                case 4:
                    for (group = 0; group < g_len; group++, cfo+=128) {
                        float *cf = cfo;
                        int len = off_len;
                        do {
                            int code;
                            unsigned nnz;
                            unsigned cb_idx;
                            unsigned sign;
                            UPDATE_CACHE(re, gb);
                            GET_VLC(code, re, gb, vlc_tab, 8, 2);
                            cb_idx = cb_vector_idx[code];
                            nnz = cb_idx >> 8 & 15;
                            sign = nnz ? SHOW_UBITS(re, gb, nnz) << (cb_idx >> 12) : 0;
                            LAST_SKIP_BITS(re, gb, nnz);
                            cf = VMUL2S(cf, vq, cb_idx, sign, sf + idx);
                        } while (len -= 2);
                    }
                    break;
                default:
                    for (group = 0; group < g_len; group++, cfo+=128) {
                        float *cf = cfo;
                        uint32_t *icf = (uint32_t *) cf;
                        int len = off_len;
                        do {
                            int code;
                            unsigned nzt, nnz;
                            unsigned cb_idx;
                            uint32_t bits;
                            int j;
                            UPDATE_CACHE(re, gb);
                            GET_VLC(code, re, gb, vlc_tab, 8, 2);
                            if (!code) {
                                *icf++ = 0;
                                *icf++ = 0;
                                continue;
                            }
                            cb_idx = cb_vector_idx[code];
                            nnz = cb_idx >> 12;
                            nzt = cb_idx >> 8;
                            bits = SHOW_UBITS(re, gb, nnz) << (32-nnz);
                            LAST_SKIP_BITS(re, gb, nnz);
                            for (j = 0; j < 2; j++) {
                                if (nzt & 1<<j) {
                                    uint32_t b;
                                    int n;
                                    UPDATE_CACHE(re, gb);
                                    b = GET_CACHE(re, gb);
                                    b = 31 - av_log2(~b);
                                    if (b > 8) {
                                        av_log(ac->avctx, AV_LOG_ERROR, "error in spectral data, ESC overflow\n");
                                        return -1;
                                    }
                                    SKIP_BITS(re, gb, b + 1);
                                    b += 4;
                                    n = (1 << b) + SHOW_UBITS(re, gb, b);
                                    LAST_SKIP_BITS(re, gb, b);
                                    *icf++ = cbrt_tab[n] | (bits & 1U<<31);
                                    bits <<= 1;
                                } else {
                                    unsigned v = ((const uint32_t*)vq)[cb_idx & 15];
                                    *icf++ = (bits & 1U<<31) | v;
                                    bits <<= !!v;
                                }
                                cb_idx >>= 4;
                            }
                        } while (len -= 2);
                        ac->dsp.vector_fmul_scalar(cfo, cfo, sf[idx], off_len);
                    }
                }
                CLOSE_READER(re, gb);
            }
        }
        coef += g_len << 7;
    }
    if (pulse_present) {
        idx = 0;
        for (i = 0; i < pulse->num_pulse; i++) {
            float co = coef_base[ pulse->pos[i] ];
            while (offsets[idx + 1] <= pulse->pos[i])
                idx++;
            if (band_type[idx] != NOISE_BT && sf[idx]) {
                float ico = -pulse->amp[i];
                if (co) {
                    co /= sf[idx];
                    ico = co / sqrtf(sqrtf(fabsf(co))) + (co > 0 ? -ico : ico);
                }
                coef_base[ pulse->pos[i] ] = cbrtf(fabsf(ico)) * ico * sf[idx];
            }
        }
    }
    return 0;
}
['static int decode_spectrum_and_dequant(AACContext *ac, float coef[1024],\n                                       GetBitContext *gb, const float sf[120],\n                                       int pulse_present, const Pulse *pulse,\n                                       const IndividualChannelStream *ics,\n                                       enum BandType band_type[120])\n{\n    int i, k, g, idx = 0;\n    const int c = 1024 / ics->num_windows;\n    const uint16_t *offsets = ics->swb_offset;\n    float *coef_base = coef;\n    for (g = 0; g < ics->num_windows; g++)\n        memset(coef + g * 128 + offsets[ics->max_sfb], 0, sizeof(float) * (c - offsets[ics->max_sfb]));\n    for (g = 0; g < ics->num_window_groups; g++) {\n        unsigned g_len = ics->group_len[g];\n        for (i = 0; i < ics->max_sfb; i++, idx++) {\n            const unsigned cbt_m1 = band_type[idx] - 1;\n            float *cfo = coef + offsets[i];\n            int off_len = offsets[i + 1] - offsets[i];\n            int group;\n            if (cbt_m1 >= INTENSITY_BT2 - 1) {\n                for (group = 0; group < g_len; group++, cfo+=128) {\n                    memset(cfo, 0, off_len * sizeof(float));\n                }\n            } else if (cbt_m1 == NOISE_BT - 1) {\n                for (group = 0; group < g_len; group++, cfo+=128) {\n                    float scale;\n                    float band_energy;\n                    for (k = 0; k < off_len; k++) {\n                        ac->random_state  = lcg_random(ac->random_state);\n                        cfo[k] = ac->random_state;\n                    }\n                    band_energy = ac->dsp.scalarproduct_float(cfo, cfo, off_len);\n                    scale = sf[idx] / sqrtf(band_energy);\n                    ac->dsp.vector_fmul_scalar(cfo, cfo, scale, off_len);\n                }\n            } else {\n                const float *vq = ff_aac_codebook_vector_vals[cbt_m1];\n                const uint16_t *cb_vector_idx = ff_aac_codebook_vector_idx[cbt_m1];\n                VLC_TYPE (*vlc_tab)[2] = vlc_spectral[cbt_m1].table;\n                OPEN_READER(re, gb);\n                switch (cbt_m1 >> 1) {\n                case 0:\n                    for (group = 0; group < g_len; group++, cfo+=128) {\n                        float *cf = cfo;\n                        int len = off_len;\n                        do {\n                            int code;\n                            unsigned cb_idx;\n                            UPDATE_CACHE(re, gb);\n                            GET_VLC(code, re, gb, vlc_tab, 8, 2);\n                            cb_idx = cb_vector_idx[code];\n                            cf = VMUL4(cf, vq, cb_idx, sf + idx);\n                        } while (len -= 4);\n                    }\n                    break;\n                case 1:\n                    for (group = 0; group < g_len; group++, cfo+=128) {\n                        float *cf = cfo;\n                        int len = off_len;\n                        do {\n                            int code;\n                            unsigned nnz;\n                            unsigned cb_idx;\n                            uint32_t bits;\n                            UPDATE_CACHE(re, gb);\n                            GET_VLC(code, re, gb, vlc_tab, 8, 2);\n                            cb_idx = cb_vector_idx[code];\n                            nnz = cb_idx >> 8 & 15;\n                            bits = nnz ? GET_CACHE(re, gb) : 0;\n                            LAST_SKIP_BITS(re, gb, nnz);\n                            cf = VMUL4S(cf, vq, cb_idx, bits, sf + idx);\n                        } while (len -= 4);\n                    }\n                    break;\n                case 2:\n                    for (group = 0; group < g_len; group++, cfo+=128) {\n                        float *cf = cfo;\n                        int len = off_len;\n                        do {\n                            int code;\n                            unsigned cb_idx;\n                            UPDATE_CACHE(re, gb);\n                            GET_VLC(code, re, gb, vlc_tab, 8, 2);\n                            cb_idx = cb_vector_idx[code];\n                            cf = VMUL2(cf, vq, cb_idx, sf + idx);\n                        } while (len -= 2);\n                    }\n                    break;\n                case 3:\n                case 4:\n                    for (group = 0; group < g_len; group++, cfo+=128) {\n                        float *cf = cfo;\n                        int len = off_len;\n                        do {\n                            int code;\n                            unsigned nnz;\n                            unsigned cb_idx;\n                            unsigned sign;\n                            UPDATE_CACHE(re, gb);\n                            GET_VLC(code, re, gb, vlc_tab, 8, 2);\n                            cb_idx = cb_vector_idx[code];\n                            nnz = cb_idx >> 8 & 15;\n                            sign = nnz ? SHOW_UBITS(re, gb, nnz) << (cb_idx >> 12) : 0;\n                            LAST_SKIP_BITS(re, gb, nnz);\n                            cf = VMUL2S(cf, vq, cb_idx, sign, sf + idx);\n                        } while (len -= 2);\n                    }\n                    break;\n                default:\n                    for (group = 0; group < g_len; group++, cfo+=128) {\n                        float *cf = cfo;\n                        uint32_t *icf = (uint32_t *) cf;\n                        int len = off_len;\n                        do {\n                            int code;\n                            unsigned nzt, nnz;\n                            unsigned cb_idx;\n                            uint32_t bits;\n                            int j;\n                            UPDATE_CACHE(re, gb);\n                            GET_VLC(code, re, gb, vlc_tab, 8, 2);\n                            if (!code) {\n                                *icf++ = 0;\n                                *icf++ = 0;\n                                continue;\n                            }\n                            cb_idx = cb_vector_idx[code];\n                            nnz = cb_idx >> 12;\n                            nzt = cb_idx >> 8;\n                            bits = SHOW_UBITS(re, gb, nnz) << (32-nnz);\n                            LAST_SKIP_BITS(re, gb, nnz);\n                            for (j = 0; j < 2; j++) {\n                                if (nzt & 1<<j) {\n                                    uint32_t b;\n                                    int n;\n                                    UPDATE_CACHE(re, gb);\n                                    b = GET_CACHE(re, gb);\n                                    b = 31 - av_log2(~b);\n                                    if (b > 8) {\n                                        av_log(ac->avctx, AV_LOG_ERROR, "error in spectral data, ESC overflow\\n");\n                                        return -1;\n                                    }\n                                    SKIP_BITS(re, gb, b + 1);\n                                    b += 4;\n                                    n = (1 << b) + SHOW_UBITS(re, gb, b);\n                                    LAST_SKIP_BITS(re, gb, b);\n                                    *icf++ = cbrt_tab[n] | (bits & 1U<<31);\n                                    bits <<= 1;\n                                } else {\n                                    unsigned v = ((const uint32_t*)vq)[cb_idx & 15];\n                                    *icf++ = (bits & 1U<<31) | v;\n                                    bits <<= !!v;\n                                }\n                                cb_idx >>= 4;\n                            }\n                        } while (len -= 2);\n                        ac->dsp.vector_fmul_scalar(cfo, cfo, sf[idx], off_len);\n                    }\n                }\n                CLOSE_READER(re, gb);\n            }\n        }\n        coef += g_len << 7;\n    }\n    if (pulse_present) {\n        idx = 0;\n        for (i = 0; i < pulse->num_pulse; i++) {\n            float co = coef_base[ pulse->pos[i] ];\n            while (offsets[idx + 1] <= pulse->pos[i])\n                idx++;\n            if (band_type[idx] != NOISE_BT && sf[idx]) {\n                float ico = -pulse->amp[i];\n                if (co) {\n                    co /= sf[idx];\n                    ico = co / sqrtf(sqrtf(fabsf(co))) + (co > 0 ? -ico : ico);\n                }\n                coef_base[ pulse->pos[i] ] = cbrtf(fabsf(ico)) * ico * sf[idx];\n            }\n        }\n    }\n    return 0;\n}']