libavformat/wavdec.c:207: error: Uninitialized Value
  The value read from data_size was never initialized.

libavformat/wavdec.c:207:5: 
205. static int wav_read_header(AVFormatContext *s)
206. {
207.     int64_t size, av_uninit(data_size);
         ^
208.     int64_t sample_count = 0;
209.     int rf64;

static int wav_read_header(AVFormatContext *s)
{
    int64_t size, av_uninit(data_size);
    int64_t sample_count = 0;
    int rf64;
    uint32_t tag;
    AVIOContext *pb      = s->pb;
    AVStream *st         = NULL;
    WAVDemuxContext *wav = s->priv_data;
    int ret, got_fmt = 0;
    int64_t next_tag_ofs, data_ofs = -1;
    tag = avio_rl32(pb);
    rf64 = tag == MKTAG('R', 'F', '6', '4');
    if (!rf64 && tag != MKTAG('R', 'I', 'F', 'F'))
        return -1;
    avio_rl32(pb);
    tag = avio_rl32(pb);
    if (tag != MKTAG('W', 'A', 'V', 'E'))
        return -1;
    if (rf64) {
        if (avio_rl32(pb) != MKTAG('d', 's', '6', '4'))
            return -1;
        size = avio_rl32(pb);
        if (size < 16)
            return -1;
        avio_rl64(pb);
        data_size    = avio_rl64(pb);
        sample_count = avio_rl64(pb);
        if (data_size < 0 || sample_count < 0) {
            av_log(s, AV_LOG_ERROR, "negative data_size and/or sample_count in "
                   "ds64: data_size = %"PRId64", sample_count = %"PRId64"\n",
                   data_size, sample_count);
            return AVERROR_INVALIDDATA;
        }
        avio_skip(pb, size - 16);
    }
    for (;;) {
        size         = next_tag(pb, &tag);
        next_tag_ofs = avio_tell(pb) + size;
        if (pb->eof_reached)
            break;
        switch (tag) {
        case MKTAG('f', 'm', 't', ' '):
            if (!got_fmt && (ret = wav_parse_fmt_tag(s, size, &st) < 0)) {
                return ret;
            } else if (got_fmt)
                av_log(s, AV_LOG_WARNING, "found more than one 'fmt ' tag\n");
            got_fmt = 1;
            break;
        case MKTAG('d', 'a', 't', 'a'):
            if (!got_fmt) {
                av_log(s, AV_LOG_ERROR,
                       "found no 'fmt ' tag before the 'data' tag\n");
                return AVERROR_INVALIDDATA;
            }
            if (rf64) {
                next_tag_ofs = wav->data_end = avio_tell(pb) + data_size;
            } else {
                data_size    = size;
                next_tag_ofs = wav->data_end = size ? next_tag_ofs : INT64_MAX;
            }
            data_ofs = avio_tell(pb);
            if (!pb->seekable || (!rf64 && !size))
                goto break_loop;
            break;
        case MKTAG('f', 'a', 'c', 't'):
            if (!sample_count)
                sample_count = avio_rl32(pb);
            break;
        case MKTAG('b', 'e', 'x', 't'):
            if ((ret = wav_parse_bext_tag(s, size)) < 0)
                return ret;
            break;
        case MKTAG('L', 'I', 'S', 'T'):
            if (size < 4) {
                av_log(s, AV_LOG_ERROR, "too short LIST");
                return AVERROR_INVALIDDATA;
            }
            switch (avio_rl32(pb)) {
            case MKTAG('I', 'N', 'F', 'O'):
                if ((ret = ff_read_riff_info(s, size - 4)) < 0)
                    return ret;
            }
            break;
        }
        if ((avio_size(pb) > 0 && next_tag_ofs >= avio_size(pb)) ||
            avio_seek(pb, next_tag_ofs, SEEK_SET) < 0) {
            break;
        }
    }
break_loop:
    if (data_ofs < 0) {
        av_log(s, AV_LOG_ERROR, "no 'data' tag found\n");
        return AVERROR_INVALIDDATA;
    }
    avio_seek(pb, data_ofs, SEEK_SET);
    if (!sample_count && st->codec->channels &&
        av_get_bits_per_sample(st->codec->codec_id))
        sample_count = (data_size << 3) /
                       (st->codec->channels *
                        (uint64_t)av_get_bits_per_sample(st->codec->codec_id));
    if (sample_count)
        st->duration = sample_count;
    ff_metadata_conv_ctx(s, NULL, wav_metadata_conv);
    ff_metadata_conv_ctx(s, NULL, ff_riff_info_conv);
    return 0;
}
['static int wav_read_header(AVFormatContext *s)\n{\n    int64_t size, av_uninit(data_size);\n    int64_t sample_count = 0;\n    int rf64;\n    uint32_t tag;\n    AVIOContext *pb      = s->pb;\n    AVStream *st         = NULL;\n    WAVDemuxContext *wav = s->priv_data;\n    int ret, got_fmt = 0;\n    int64_t next_tag_ofs, data_ofs = -1;\n    tag = avio_rl32(pb);\n    rf64 = tag == MKTAG(\'R\', \'F\', \'6\', \'4\');\n    if (!rf64 && tag != MKTAG(\'R\', \'I\', \'F\', \'F\'))\n        return -1;\n    avio_rl32(pb);\n    tag = avio_rl32(pb);\n    if (tag != MKTAG(\'W\', \'A\', \'V\', \'E\'))\n        return -1;\n    if (rf64) {\n        if (avio_rl32(pb) != MKTAG(\'d\', \'s\', \'6\', \'4\'))\n            return -1;\n        size = avio_rl32(pb);\n        if (size < 16)\n            return -1;\n        avio_rl64(pb);\n        data_size    = avio_rl64(pb);\n        sample_count = avio_rl64(pb);\n        if (data_size < 0 || sample_count < 0) {\n            av_log(s, AV_LOG_ERROR, "negative data_size and/or sample_count in "\n                   "ds64: data_size = %"PRId64", sample_count = %"PRId64"\\n",\n                   data_size, sample_count);\n            return AVERROR_INVALIDDATA;\n        }\n        avio_skip(pb, size - 16);\n    }\n    for (;;) {\n        size         = next_tag(pb, &tag);\n        next_tag_ofs = avio_tell(pb) + size;\n        if (pb->eof_reached)\n            break;\n        switch (tag) {\n        case MKTAG(\'f\', \'m\', \'t\', \' \'):\n            if (!got_fmt && (ret = wav_parse_fmt_tag(s, size, &st) < 0)) {\n                return ret;\n            } else if (got_fmt)\n                av_log(s, AV_LOG_WARNING, "found more than one \'fmt \' tag\\n");\n            got_fmt = 1;\n            break;\n        case MKTAG(\'d\', \'a\', \'t\', \'a\'):\n            if (!got_fmt) {\n                av_log(s, AV_LOG_ERROR,\n                       "found no \'fmt \' tag before the \'data\' tag\\n");\n                return AVERROR_INVALIDDATA;\n            }\n            if (rf64) {\n                next_tag_ofs = wav->data_end = avio_tell(pb) + data_size;\n            } else {\n                data_size    = size;\n                next_tag_ofs = wav->data_end = size ? next_tag_ofs : INT64_MAX;\n            }\n            data_ofs = avio_tell(pb);\n            if (!pb->seekable || (!rf64 && !size))\n                goto break_loop;\n            break;\n        case MKTAG(\'f\', \'a\', \'c\', \'t\'):\n            if (!sample_count)\n                sample_count = avio_rl32(pb);\n            break;\n        case MKTAG(\'b\', \'e\', \'x\', \'t\'):\n            if ((ret = wav_parse_bext_tag(s, size)) < 0)\n                return ret;\n            break;\n        case MKTAG(\'L\', \'I\', \'S\', \'T\'):\n            if (size < 4) {\n                av_log(s, AV_LOG_ERROR, "too short LIST");\n                return AVERROR_INVALIDDATA;\n            }\n            switch (avio_rl32(pb)) {\n            case MKTAG(\'I\', \'N\', \'F\', \'O\'):\n                if ((ret = ff_read_riff_info(s, size - 4)) < 0)\n                    return ret;\n            }\n            break;\n        }\n        if ((avio_size(pb) > 0 && next_tag_ofs >= avio_size(pb)) ||\n            avio_seek(pb, next_tag_ofs, SEEK_SET) < 0) {\n            break;\n        }\n    }\nbreak_loop:\n    if (data_ofs < 0) {\n        av_log(s, AV_LOG_ERROR, "no \'data\' tag found\\n");\n        return AVERROR_INVALIDDATA;\n    }\n    avio_seek(pb, data_ofs, SEEK_SET);\n    if (!sample_count && st->codec->channels &&\n        av_get_bits_per_sample(st->codec->codec_id))\n        sample_count = (data_size << 3) /\n                       (st->codec->channels *\n                        (uint64_t)av_get_bits_per_sample(st->codec->codec_id));\n    if (sample_count)\n        st->duration = sample_count;\n    ff_metadata_conv_ctx(s, NULL, wav_metadata_conv);\n    ff_metadata_conv_ctx(s, NULL, ff_riff_info_conv);\n    return 0;\n}']