Merge changes from topic 'wextra'

* changes:
  Expand -Wextra to more of the library
  mips: clean up wextra warnings
  Add compiler flag -Wsign-compare
  Add compiler warning flag -Wextra and fix related warnings.
This commit is contained in:
Johann Koenig 2016-09-27 21:13:50 +00:00 committed by Gerrit Code Review
commit 348cff040a
14 changed files with 74 additions and 24 deletions

9
args.c
View File

@ -13,6 +13,7 @@
#include <limits.h> #include <limits.h>
#include "args.h" #include "args.h"
#include "vpx/vpx_integer.h"
#include "vpx_ports/msvc.h" #include "vpx_ports/msvc.h"
#if defined(__GNUC__) && __GNUC__ #if defined(__GNUC__) && __GNUC__
@ -118,13 +119,13 @@ void arg_show_usage(FILE *fp, const struct arg_def *const *defs) {
} }
unsigned int arg_parse_uint(const struct arg *arg) { unsigned int arg_parse_uint(const struct arg *arg) {
long int rawval; uint32_t rawval;
char *endptr; char *endptr;
rawval = strtol(arg->val, &endptr, 10); rawval = strtoul(arg->val, &endptr, 10);
if (arg->val[0] != '\0' && endptr[0] == '\0') { if (arg->val[0] != '\0' && endptr[0] == '\0') {
if (rawval >= 0 && rawval <= UINT_MAX) return (unsigned int)rawval; if (rawval <= UINT_MAX) return rawval;
die("Option %s: Value %ld out of range for unsigned int\n", arg->name, die("Option %s: Value %ld out of range for unsigned int\n", arg->name,
rawval); rawval);
@ -135,7 +136,7 @@ unsigned int arg_parse_uint(const struct arg *arg) {
} }
int arg_parse_int(const struct arg *arg) { int arg_parse_int(const struct arg *arg) {
long int rawval; int32_t rawval;
char *endptr; char *endptr;
rawval = strtol(arg->val, &endptr, 10); rawval = strtol(arg->val, &endptr, 10);

5
configure vendored
View File

@ -575,6 +575,11 @@ process_toolchain() {
check_add_cflags -Wimplicit-function-declaration check_add_cflags -Wimplicit-function-declaration
check_add_cflags -Wuninitialized check_add_cflags -Wuninitialized
check_add_cflags -Wunused check_add_cflags -Wunused
# -Wextra has some tricky cases. Rather than fix them all now, get the
# flag for as many files as possible and fix the remaining issues
# piecemeal.
# https://bugs.chromium.org/p/webm/issues/detail?id=1069
check_add_cflags -Wextra
# check_add_cflags also adds to cxxflags. gtest does not do well with # check_add_cflags also adds to cxxflags. gtest does not do well with
# -Wundef so add it explicitly to CFLAGS only. # -Wundef so add it explicitly to CFLAGS only.
check_cflags -Wundef && add_cflags_only -Wundef check_cflags -Wundef && add_cflags_only -Wundef

View File

@ -76,6 +76,7 @@ vpxdec.SRCS += tools_common.c tools_common.h
vpxdec.SRCS += y4menc.c y4menc.h vpxdec.SRCS += y4menc.c y4menc.h
ifeq ($(CONFIG_LIBYUV),yes) ifeq ($(CONFIG_LIBYUV),yes)
vpxdec.SRCS += $(LIBYUV_SRCS) vpxdec.SRCS += $(LIBYUV_SRCS)
$(BUILD_PFX)third_party/libyuv/%.cc.o: CXXFLAGS += -Wno-unused-parameter
endif endif
ifeq ($(CONFIG_WEBM_IO),yes) ifeq ($(CONFIG_WEBM_IO),yes)
vpxdec.SRCS += $(LIBWEBM_COMMON_SRCS) vpxdec.SRCS += $(LIBWEBM_COMMON_SRCS)

View File

@ -304,6 +304,7 @@ int main(int argc, char **argv) {
const char *height_arg = NULL; const char *height_arg = NULL;
const char *infile_arg = NULL; const char *infile_arg = NULL;
const char *outfile_arg = NULL; const char *outfile_arg = NULL;
const char *update_frame_num_arg = NULL;
unsigned int limit = 0; unsigned int limit = 0;
vp9_zero(ecodec); vp9_zero(ecodec);
@ -318,18 +319,21 @@ int main(int argc, char **argv) {
height_arg = argv[2]; height_arg = argv[2];
infile_arg = argv[3]; infile_arg = argv[3];
outfile_arg = argv[4]; outfile_arg = argv[4];
update_frame_num_arg = argv[5];
encoder = get_vpx_encoder_by_name("vp9"); encoder = get_vpx_encoder_by_name("vp9");
if (!encoder) die("Unsupported codec."); if (!encoder) die("Unsupported codec.");
update_frame_num = atoi(argv[5]); update_frame_num = (unsigned int)strtoul(update_frame_num_arg, NULL, 0);
// In VP9, the reference buffers (cm->buffer_pool->frame_bufs[i].buf) are // In VP9, the reference buffers (cm->buffer_pool->frame_bufs[i].buf) are
// allocated while calling vpx_codec_encode(), thus, setting reference for // allocated while calling vpx_codec_encode(), thus, setting reference for
// 1st frame isn't supported. // 1st frame isn't supported.
if (update_frame_num <= 1) die("Couldn't parse frame number '%s'\n", argv[5]); if (update_frame_num <= 1) {
die("Couldn't parse frame number '%s'\n", update_frame_num_arg);
}
if (argc > 6) { if (argc > 6) {
limit = atoi(argv[6]); limit = (unsigned int)strtoul(argv[6], NULL, 0);
if (update_frame_num > limit) if (update_frame_num > limit)
die("Update frame number couldn't larger than limit\n"); die("Update frame number couldn't larger than limit\n");
} }

View File

@ -106,9 +106,6 @@ ifeq ($(CONFIG_VP9_DECODER),yes)
CODEC_DOC_SECTIONS += vp9 vp9_decoder CODEC_DOC_SECTIONS += vp9 vp9_decoder
endif endif
VP9_PREFIX=vp9/
$(BUILD_PFX)$(VP9_PREFIX)%.c.o: CFLAGS += -Wextra
ifeq ($(CONFIG_ENCODERS),yes) ifeq ($(CONFIG_ENCODERS),yes)
CODEC_DOC_SECTIONS += encoder CODEC_DOC_SECTIONS += encoder
endif endif
@ -116,6 +113,12 @@ ifeq ($(CONFIG_DECODERS),yes)
CODEC_DOC_SECTIONS += decoder CODEC_DOC_SECTIONS += decoder
endif endif
# Suppress -Wextra warnings in third party code.
$(BUILD_PFX)third_party/googletest/%.cc.o: CXXFLAGS += -Wno-missing-field-initializers
# Suppress -Wextra warnings in first party code pending investigation.
# https://bugs.chromium.org/p/webm/issues/detail?id=1069
$(BUILD_PFX)vp8/encoder/onyx_if.c.o: CFLAGS += -Wno-unknown-warning-option -Wno-clobbered
$(BUILD_PFX)vp8/decoder/onyxd_if.c.o: CFLAGS += -Wno-unknown-warning-option -Wno-clobbered
ifeq ($(CONFIG_MSVS),yes) ifeq ($(CONFIG_MSVS),yes)
CODEC_LIB=$(if $(CONFIG_STATIC_MSVCRT),vpxmt,vpxmd) CODEC_LIB=$(if $(CONFIG_STATIC_MSVCRT),vpxmt,vpxmd)

View File

@ -53,7 +53,7 @@ class AverageTestBase : public ::testing::Test {
} }
// Sum Pixels // Sum Pixels
unsigned int ReferenceAverage8x8(const uint8_t *source, int pitch) { static unsigned int ReferenceAverage8x8(const uint8_t *source, int pitch) {
unsigned int average = 0; unsigned int average = 0;
for (int h = 0; h < 8; ++h) { for (int h = 0; h < 8; ++h) {
for (int w = 0; w < 8; ++w) average += source[h * pitch + w]; for (int w = 0; w < 8; ++w) average += source[h * pitch + w];
@ -61,7 +61,7 @@ class AverageTestBase : public ::testing::Test {
return ((average + 32) >> 6); return ((average + 32) >> 6);
} }
unsigned int ReferenceAverage4x4(const uint8_t *source, int pitch) { static unsigned int ReferenceAverage4x4(const uint8_t *source, int pitch) {
unsigned int average = 0; unsigned int average = 0;
for (int h = 0; h < 4; ++h) { for (int h = 0; h < 4; ++h) {
for (int w = 0; w < 4; ++w) average += source[h * pitch + w]; for (int w = 0; w < 4; ++w) average += source[h * pitch + w];
@ -98,11 +98,12 @@ class AverageTest : public AverageTestBase,
protected: protected:
void CheckAverages() { void CheckAverages() {
const int block_size = GET_PARAM(3);
unsigned int expected = 0; unsigned int expected = 0;
if (GET_PARAM(3) == 8) { if (block_size == 8) {
expected = expected =
ReferenceAverage8x8(source_data_ + GET_PARAM(2), source_stride_); ReferenceAverage8x8(source_data_ + GET_PARAM(2), source_stride_);
} else if (GET_PARAM(3) == 4) { } else if (block_size == 4) {
expected = expected =
ReferenceAverage4x4(source_data_ + GET_PARAM(2), source_stride_); ReferenceAverage4x4(source_data_ + GET_PARAM(2), source_stride_);
} }

View File

@ -115,6 +115,8 @@ class VP8CodecFactory : public CodecFactory {
#if CONFIG_VP8_DECODER #if CONFIG_VP8_DECODER
return new VP8Decoder(cfg, flags); return new VP8Decoder(cfg, flags);
#else #else
(void)cfg;
(void)flags;
return NULL; return NULL;
#endif #endif
} }
@ -126,6 +128,10 @@ class VP8CodecFactory : public CodecFactory {
#if CONFIG_VP8_ENCODER #if CONFIG_VP8_ENCODER
return new VP8Encoder(cfg, deadline, init_flags, stats); return new VP8Encoder(cfg, deadline, init_flags, stats);
#else #else
(void)cfg;
(void)deadline;
(void)init_flags;
(void)stats;
return NULL; return NULL;
#endif #endif
} }
@ -135,6 +141,8 @@ class VP8CodecFactory : public CodecFactory {
#if CONFIG_VP8_ENCODER #if CONFIG_VP8_ENCODER
return vpx_codec_enc_config_default(&vpx_codec_vp8_cx_algo, cfg, usage); return vpx_codec_enc_config_default(&vpx_codec_vp8_cx_algo, cfg, usage);
#else #else
(void)cfg;
(void)usage;
return VPX_CODEC_INCAPABLE; return VPX_CODEC_INCAPABLE;
#endif #endif
} }
@ -203,6 +211,8 @@ class VP9CodecFactory : public CodecFactory {
#if CONFIG_VP9_DECODER #if CONFIG_VP9_DECODER
return new VP9Decoder(cfg, flags); return new VP9Decoder(cfg, flags);
#else #else
(void)cfg;
(void)flags;
return NULL; return NULL;
#endif #endif
} }
@ -214,6 +224,10 @@ class VP9CodecFactory : public CodecFactory {
#if CONFIG_VP9_ENCODER #if CONFIG_VP9_ENCODER
return new VP9Encoder(cfg, deadline, init_flags, stats); return new VP9Encoder(cfg, deadline, init_flags, stats);
#else #else
(void)cfg;
(void)deadline;
(void)init_flags;
(void)stats;
return NULL; return NULL;
#endif #endif
} }
@ -223,6 +237,8 @@ class VP9CodecFactory : public CodecFactory {
#if CONFIG_VP9_ENCODER #if CONFIG_VP9_ENCODER
return vpx_codec_enc_config_default(&vpx_codec_vp9_cx_algo, cfg, usage); return vpx_codec_enc_config_default(&vpx_codec_vp9_cx_algo, cfg, usage);
#else #else
(void)cfg;
(void)usage;
return VPX_CODEC_INCAPABLE; return VPX_CODEC_INCAPABLE;
#endif #endif
} }

View File

@ -90,8 +90,7 @@ class ErrorResilienceTestLarge
return frame_flags; return frame_flags;
} }
virtual void PreEncodeFrameHook(libvpx_test::VideoSource *video, virtual void PreEncodeFrameHook(libvpx_test::VideoSource *video) {
::libvpx_test::Encoder * /*encoder*/) {
frame_flags_ &= frame_flags_ &=
~(VP8_EFLAG_NO_UPD_LAST | VP8_EFLAG_NO_UPD_GF | VP8_EFLAG_NO_UPD_ARF); ~(VP8_EFLAG_NO_UPD_LAST | VP8_EFLAG_NO_UPD_GF | VP8_EFLAG_NO_UPD_ARF);
// For temporal layer case. // For temporal layer case.

View File

@ -12,10 +12,9 @@
#include "vp8/common/mips/msa/vp8_macros_msa.h" #include "vp8/common/mips/msa/vp8_macros_msa.h"
#include "vp8/encoder/block.h" #include "vp8/encoder/block.h"
static int8_t fast_quantize_b_msa(int16_t *coeff_ptr, int16_t *zbin, static int8_t fast_quantize_b_msa(int16_t *coeff_ptr, int16_t *round,
int16_t *round, int16_t *quant, int16_t *quant, int16_t *de_quant,
int16_t *de_quant, int16_t *q_coeff, int16_t *q_coeff, int16_t *dq_coeff) {
int16_t *dq_coeff) {
int32_t cnt, eob; int32_t cnt, eob;
v16i8 inv_zig_zag = { 0, 1, 5, 6, 2, 4, 7, 12, 3, 8, 11, 13, 9, 10, 14, 15 }; v16i8 inv_zig_zag = { 0, 1, 5, 6, 2, 4, 7, 12, 3, 8, 11, 13, 9, 10, 14, 15 };
v8i16 round0, round1; v8i16 round0, round1;
@ -184,15 +183,14 @@ static int8_t exact_regular_quantize_b_msa(
void vp8_fast_quantize_b_msa(BLOCK *b, BLOCKD *d) { void vp8_fast_quantize_b_msa(BLOCK *b, BLOCKD *d) {
int16_t *coeff_ptr = b->coeff; int16_t *coeff_ptr = b->coeff;
int16_t *zbin_ptr = b->zbin;
int16_t *round_ptr = b->round; int16_t *round_ptr = b->round;
int16_t *quant_ptr = b->quant_fast; int16_t *quant_ptr = b->quant_fast;
int16_t *qcoeff_ptr = d->qcoeff; int16_t *qcoeff_ptr = d->qcoeff;
int16_t *dqcoeff_ptr = d->dqcoeff; int16_t *dqcoeff_ptr = d->dqcoeff;
int16_t *dequant_ptr = d->dequant; int16_t *dequant_ptr = d->dequant;
*d->eob = fast_quantize_b_msa(coeff_ptr, zbin_ptr, round_ptr, quant_ptr, *d->eob = fast_quantize_b_msa(coeff_ptr, round_ptr, quant_ptr, dequant_ptr,
dequant_ptr, qcoeff_ptr, dqcoeff_ptr); qcoeff_ptr, dqcoeff_ptr);
} }
void vp8_regular_quantize_b_msa(BLOCK *b, BLOCKD *d) { void vp8_regular_quantize_b_msa(BLOCK *b, BLOCKD *d) {

View File

@ -64,6 +64,10 @@ void vpx_convolve8_avg_horiz_neon(const uint8_t *src, ptrdiff_t src_stride,
assert(x_step_q4 == 16); assert(x_step_q4 == 16);
(void)x_step_q4;
(void)y_step_q4;
(void)filter_y;
q0s16 = vld1q_s16(filter_x); q0s16 = vld1q_s16(filter_x);
src -= 3; // adjust for taps src -= 3; // adjust for taps
@ -240,6 +244,10 @@ void vpx_convolve8_avg_vert_neon(const uint8_t *src, ptrdiff_t src_stride,
assert(y_step_q4 == 16); assert(y_step_q4 == 16);
(void)x_step_q4;
(void)y_step_q4;
(void)filter_x;
src -= src_stride * 3; src -= src_stride * 3;
q0s16 = vld1q_s16(filter_y); q0s16 = vld1q_s16(filter_y);
for (; w > 0; w -= 4, src += 4, dst += 4) { // loop_vert_h for (; w > 0; w -= 4, src += 4, dst += 4) { // loop_vert_h

View File

@ -64,6 +64,10 @@ void vpx_convolve8_horiz_neon(const uint8_t *src, ptrdiff_t src_stride,
assert(x_step_q4 == 16); assert(x_step_q4 == 16);
(void)x_step_q4;
(void)y_step_q4;
(void)filter_y;
q0s16 = vld1q_s16(filter_x); q0s16 = vld1q_s16(filter_x);
src -= 3; // adjust for taps src -= 3; // adjust for taps
@ -224,6 +228,10 @@ void vpx_convolve8_vert_neon(const uint8_t *src, ptrdiff_t src_stride,
assert(y_step_q4 == 16); assert(y_step_q4 == 16);
(void)x_step_q4;
(void)y_step_q4;
(void)filter_x;
src -= src_stride * 3; src -= src_stride * 3;
q0s16 = vld1q_s16(filter_y); q0s16 = vld1q_s16(filter_y);
for (; w > 0; w -= 4, src += 4, dst += 4) { // loop_vert_h for (; w > 0; w -= 4, src += 4, dst += 4) { // loop_vert_h

View File

@ -202,6 +202,7 @@ static void fs_apply_luminance(fs_ctx *_ctx, int _l, int bit_depth) {
if (bit_depth == 12) ssim_c1 = SSIM_C1_12; if (bit_depth == 12) ssim_c1 = SSIM_C1_12;
#else #else
assert(bit_depth == 8); assert(bit_depth == 8);
(void)bit_depth;
#endif #endif
w = _ctx->level[_l].w; w = _ctx->level[_l].w;
h = _ctx->level[_l].h; h = _ctx->level[_l].h;
@ -326,6 +327,7 @@ static void fs_calc_structure(fs_ctx *_ctx, int _l, int bit_depth) {
if (bit_depth == 12) ssim_c2 = SSIM_C2_12; if (bit_depth == 12) ssim_c2 = SSIM_C2_12;
#else #else
assert(bit_depth == 8); assert(bit_depth == 8);
(void)bit_depth;
#endif #endif
w = _ctx->level[_l].w; w = _ctx->level[_l].w;

View File

@ -14,7 +14,7 @@
void vpx_plane_add_noise_msa(uint8_t *start_ptr, const int8_t *noise, void vpx_plane_add_noise_msa(uint8_t *start_ptr, const int8_t *noise,
int blackclamp, int whiteclamp, int width, int blackclamp, int whiteclamp, int width,
int height, int32_t pitch) { int height, int32_t pitch) {
uint32_t i, j; int i, j;
for (i = 0; i < height / 2; ++i) { for (i = 0; i < height / 2; ++i) {
uint8_t *pos0_ptr = start_ptr + (2 * i) * pitch; uint8_t *pos0_ptr = start_ptr + (2 * i) * pitch;

View File

@ -25,6 +25,10 @@ typedef void filter8_1dfunction(const uint8_t *src_ptr, ptrdiff_t src_pitch,
const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, \ const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, \
ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, \ ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, \
const int16_t *filter_y, int y_step_q4, int w, int h) { \ const int16_t *filter_y, int y_step_q4, int w, int h) { \
(void)filter_x; \
(void)x_step_q4; \
(void)filter_y; \
(void)y_step_q4; \
assert(filter[3] != 128); \ assert(filter[3] != 128); \
assert(step_q4 == 16); \ assert(step_q4 == 16); \
if (filter[0] | filter[1] | filter[2]) { \ if (filter[0] | filter[1] | filter[2]) { \