libavcodec/flac.c:309: error: Uninitialized Value
  The value read from c was never initialized.

libavcodec/flac.c:309:40: 
307.         case 4:
308.             for (i = pred_order; i < blocksize; i++)
309.                 decoded[i] = a += b += c += d += decoded[i];
                                            ^
310.             break;
311.         default:

static int decode_subframe_fixed(FLACContext *s, int channel, int pred_order)
{
    const int blocksize = s->blocksize;
    int32_t *decoded = s->decoded[channel];
    int a, b, c, d, i;
    for (i = 0; i < pred_order; i++)
    {
        decoded[i] = get_sbits(&s->gb, s->curr_bps);
    }
    if (decode_residuals(s, channel, pred_order) < 0)
        return -1;
    if(pred_order > 0)
        a = decoded[pred_order-1];
    if(pred_order > 1)
        b = a - decoded[pred_order-2];
    if(pred_order > 2)
        c = b - decoded[pred_order-2] + decoded[pred_order-3];
    if(pred_order > 3)
        d = c - decoded[pred_order-2] + 2*decoded[pred_order-3] - decoded[pred_order-4];
    switch(pred_order)
    {
        case 0:
            break;
        case 1:
            for (i = pred_order; i < blocksize; i++)
                decoded[i] = a += decoded[i];
            break;
        case 2:
            for (i = pred_order; i < blocksize; i++)
                decoded[i] = a += b += decoded[i];
            break;
        case 3:
            for (i = pred_order; i < blocksize; i++)
                decoded[i] = a += b += c += decoded[i];
            break;
        case 4:
            for (i = pred_order; i < blocksize; i++)
                decoded[i] = a += b += c += d += decoded[i];
            break;
        default:
            av_log(s->avctx, AV_LOG_ERROR, "illegal pred order %d\n", pred_order);
            return -1;
    }
    return 0;
}
['static int decode_subframe_fixed(FLACContext *s, int channel, int pred_order)\n{\n    const int blocksize = s->blocksize;\n    int32_t *decoded = s->decoded[channel];\n    int a, b, c, d, i;\n    for (i = 0; i < pred_order; i++)\n    {\n        decoded[i] = get_sbits(&s->gb, s->curr_bps);\n    }\n    if (decode_residuals(s, channel, pred_order) < 0)\n        return -1;\n    if(pred_order > 0)\n        a = decoded[pred_order-1];\n    if(pred_order > 1)\n        b = a - decoded[pred_order-2];\n    if(pred_order > 2)\n        c = b - decoded[pred_order-2] + decoded[pred_order-3];\n    if(pred_order > 3)\n        d = c - decoded[pred_order-2] + 2*decoded[pred_order-3] - decoded[pred_order-4];\n    switch(pred_order)\n    {\n        case 0:\n            break;\n        case 1:\n            for (i = pred_order; i < blocksize; i++)\n                decoded[i] = a += decoded[i];\n            break;\n        case 2:\n            for (i = pred_order; i < blocksize; i++)\n                decoded[i] = a += b += decoded[i];\n            break;\n        case 3:\n            for (i = pred_order; i < blocksize; i++)\n                decoded[i] = a += b += c += decoded[i];\n            break;\n        case 4:\n            for (i = pred_order; i < blocksize; i++)\n                decoded[i] = a += b += c += d += decoded[i];\n            break;\n        default:\n            av_log(s->avctx, AV_LOG_ERROR, "illegal pred order %d\\n", pred_order);\n            return -1;\n    }\n    return 0;\n}']