libavcodec/interplayvideo.c:498: error: Uninitialized Value
  The value read from P[_] was never initialized.

libavcodec/interplayvideo.c:498:17: 
496.             flags = bytestream_get_le16(&s->stream_ptr);
497.             for (x = 0, shifter = 0; x < 8; x++, shifter += 2) {
498.                 *s->pixel_ptr++ = P[(flags >> shifter) & 0x03];
                     ^
499.             }
500.             s->pixel_ptr += s->line_inc;

static int ipvideo_decode_block_opcode_0x9(IpvideoContext *s)
{
    int x, y;
    unsigned char P[4];
    unsigned int flags = 0;
    int shifter = 0;
    unsigned char pix;
    CHECK_STREAM_PTR(4);
    for (y = 0; y < 4; y++)
        P[y] = *s->stream_ptr++;
    if ((P[0] <= P[1]) && (P[2] <= P[3])) {
        CHECK_STREAM_PTR(16);
        for (y = 0; y < 8; y++) {
            flags = bytestream_get_le16(&s->stream_ptr);
            for (x = 0, shifter = 0; x < 8; x++, shifter += 2) {
                *s->pixel_ptr++ = P[(flags >> shifter) & 0x03];
            }
            s->pixel_ptr += s->line_inc;
        }
    } else if ((P[0] <= P[1]) && (P[2] > P[3])) {
        CHECK_STREAM_PTR(4);
        flags = bytestream_get_le32(&s->stream_ptr);
        shifter = 0;
        for (y = 0; y < 8; y += 2) {
            for (x = 0; x < 8; x += 2, shifter += 2) {
                pix = P[(flags >> shifter) & 0x03];
                *(s->pixel_ptr + x) = pix;
                *(s->pixel_ptr + x + 1) = pix;
                *(s->pixel_ptr + s->stride + x) = pix;
                *(s->pixel_ptr + s->stride + x + 1) = pix;
            }
            s->pixel_ptr += s->stride * 2;
        }
    } else if ((P[0] > P[1]) && (P[2] <= P[3])) {
        CHECK_STREAM_PTR(8);
        for (y = 0; y < 8; y++) {
            if ((y == 0) || (y == 4)) {
                flags = bytestream_get_le32(&s->stream_ptr);
                shifter = 0;
            }
            for (x = 0; x < 8; x += 2, shifter += 2) {
                pix = P[(flags >> shifter) & 0x03];
                *(s->pixel_ptr + x) = pix;
                *(s->pixel_ptr + x + 1) = pix;
            }
            s->pixel_ptr += s->stride;
        }
    } else {
        CHECK_STREAM_PTR(8);
        for (y = 0; y < 8; y += 2) {
            if ((y == 0) || (y == 4)) {
                flags = bytestream_get_le32(&s->stream_ptr);
                shifter = 0;
            }
            for (x = 0; x < 8; x++, shifter += 2) {
                pix = P[(flags >> shifter) & 0x03];
                *(s->pixel_ptr + x) = pix;
                *(s->pixel_ptr + s->stride + x) = pix;
            }
            s->pixel_ptr += s->stride * 2;
        }
    }
    return 0;
}
['static int ipvideo_decode_block_opcode_0x9(IpvideoContext *s)\n{\n    int x, y;\n    unsigned char P[4];\n    unsigned int flags = 0;\n    int shifter = 0;\n    unsigned char pix;\n    CHECK_STREAM_PTR(4);\n    for (y = 0; y < 4; y++)\n        P[y] = *s->stream_ptr++;\n    if ((P[0] <= P[1]) && (P[2] <= P[3])) {\n        CHECK_STREAM_PTR(16);\n        for (y = 0; y < 8; y++) {\n            flags = bytestream_get_le16(&s->stream_ptr);\n            for (x = 0, shifter = 0; x < 8; x++, shifter += 2) {\n                *s->pixel_ptr++ = P[(flags >> shifter) & 0x03];\n            }\n            s->pixel_ptr += s->line_inc;\n        }\n    } else if ((P[0] <= P[1]) && (P[2] > P[3])) {\n        CHECK_STREAM_PTR(4);\n        flags = bytestream_get_le32(&s->stream_ptr);\n        shifter = 0;\n        for (y = 0; y < 8; y += 2) {\n            for (x = 0; x < 8; x += 2, shifter += 2) {\n                pix = P[(flags >> shifter) & 0x03];\n                *(s->pixel_ptr + x) = pix;\n                *(s->pixel_ptr + x + 1) = pix;\n                *(s->pixel_ptr + s->stride + x) = pix;\n                *(s->pixel_ptr + s->stride + x + 1) = pix;\n            }\n            s->pixel_ptr += s->stride * 2;\n        }\n    } else if ((P[0] > P[1]) && (P[2] <= P[3])) {\n        CHECK_STREAM_PTR(8);\n        for (y = 0; y < 8; y++) {\n            if ((y == 0) || (y == 4)) {\n                flags = bytestream_get_le32(&s->stream_ptr);\n                shifter = 0;\n            }\n            for (x = 0; x < 8; x += 2, shifter += 2) {\n                pix = P[(flags >> shifter) & 0x03];\n                *(s->pixel_ptr + x) = pix;\n                *(s->pixel_ptr + x + 1) = pix;\n            }\n            s->pixel_ptr += s->stride;\n        }\n    } else {\n        CHECK_STREAM_PTR(8);\n        for (y = 0; y < 8; y += 2) {\n            if ((y == 0) || (y == 4)) {\n                flags = bytestream_get_le32(&s->stream_ptr);\n                shifter = 0;\n            }\n            for (x = 0; x < 8; x++, shifter += 2) {\n                pix = P[(flags >> shifter) & 0x03];\n                *(s->pixel_ptr + x) = pix;\n                *(s->pixel_ptr + s->stride + x) = pix;\n            }\n            s->pixel_ptr += s->stride * 2;\n        }\n    }\n    return 0;\n}']