Fix static analyzer warnings
With clang v7 we are getting inflow of static analyzer warnings. With
this fix the number of shallow warnigns is 0 and number of deep
warnings is 37
BUG=aomedia:2312
Change-Id: I64846cb078d48f115ee490d0a9c8e1abfa2faae7
diff --git a/av1/common/onyxc_int.h b/av1/common/onyxc_int.h
index 8117dfc..3df1e83 100644
--- a/av1/common/onyxc_int.h
+++ b/av1/common/onyxc_int.h
@@ -1076,6 +1076,7 @@
static INLINE int max_block_wide(const MACROBLOCKD *xd, BLOCK_SIZE bsize,
int plane) {
+ assert(bsize < BLOCK_SIZES_ALL);
int max_blocks_wide = block_size_wide[bsize];
const struct macroblockd_plane *const pd = &xd->plane[plane];
diff --git a/av1/common/restoration.c b/av1/common/restoration.c
index 9e472b8..69d898f 100644
--- a/av1/common/restoration.c
+++ b/av1/common/restoration.c
@@ -1146,7 +1146,7 @@
static const copy_fun copy_funs[3] = { aom_yv12_partial_coloc_copy_y,
aom_yv12_partial_coloc_copy_u,
aom_yv12_partial_coloc_copy_v };
-
+ assert(num_planes <= 3);
for (int plane = 0; plane < num_planes; ++plane) {
if (cm->rst_info[plane].frame_restoration_type == RESTORE_NONE) continue;
AV1PixelRect tile_rect = loop_rest_ctxt->ctxt[plane].tile_rect;
diff --git a/av1/encoder/bitstream.c b/av1/encoder/bitstream.c
index 2d58364..d052ac6 100644
--- a/av1/encoder/bitstream.c
+++ b/av1/encoder/bitstream.c
@@ -1373,6 +1373,7 @@
MACROBLOCKD *const xd = &x->e_mbd;
const struct macroblockd_plane *const pd = &xd->plane[plane];
const BLOCK_SIZE bsize = mbmi->sb_type;
+ assert(bsize < BLOCK_SIZES_ALL);
const BLOCK_SIZE bsizec =
scale_chroma_bsize(bsize, pd->subsampling_x, pd->subsampling_y);
diff --git a/av1/encoder/encodeframe.c b/av1/encoder/encodeframe.c
index a6b9d3c..8ca501d 100644
--- a/av1/encoder/encodeframe.c
+++ b/av1/encoder/encodeframe.c
@@ -1970,6 +1970,8 @@
const SPEED_FEATURES *const sf = &cpi->sf;
MACROBLOCK *const x = &td->mb;
MACROBLOCKD *const xd = &x->e_mbd;
+ // Only square blocks from 8x8 to 128x128 are supported
+ assert(bsize >= BLOCK_8X8 && bsize <= BLOCK_128X128);
const int bs = mi_size_wide[bsize];
const int hbs = bs / 2;
const PARTITION_TYPE partition =
diff --git a/av1/encoder/encodemb.c b/av1/encoder/encodemb.c
index 8e9da61..68225e9 100644
--- a/av1/encoder/encodemb.c
+++ b/av1/encoder/encodemb.c
@@ -638,6 +638,7 @@
const MACROBLOCKD *const xd = &x->e_mbd;
ENTROPY_CONTEXT ta[MAX_MIB_SIZE] = { 0 };
ENTROPY_CONTEXT tl[MAX_MIB_SIZE] = { 0 };
+ assert(bsize < BLOCK_SIZES_ALL);
struct encode_b_args arg = {
cpi, x, NULL, &(xd->mi[0]->skip), ta, tl, enable_optimize_b
diff --git a/av1/encoder/nonrd_pickmode.c b/av1/encoder/nonrd_pickmode.c
index dbb9b0b..3fc5bd4 100644
--- a/av1/encoder/nonrd_pickmode.c
+++ b/av1/encoder/nonrd_pickmode.c
@@ -650,6 +650,7 @@
int64_t rate_sum = 0;
int64_t dist_sum = 0;
int64_t total_sse = 0;
+ assert(bsize < BLOCK_SIZES_ALL);
for (plane = plane_from; plane <= plane_to; ++plane) {
struct macroblock_plane *const p = &x->plane[plane];
diff --git a/av1/encoder/rdopt.c b/av1/encoder/rdopt.c
index 4d9d00f..d6e2233 100644
--- a/av1/encoder/rdopt.c
+++ b/av1/encoder/rdopt.c
@@ -5392,6 +5392,7 @@
TXB_RD_INFO_NODE *rd_info_tree) {
MACROBLOCKD *const xd = &x->e_mbd;
assert(is_inter_block(xd->mi[0]));
+ assert(bsize < BLOCK_SIZES_ALL);
// TODO(debargha): enable this as a speed feature where the
// select_inter_block_yrd() function above will use a simplified search
@@ -6027,6 +6028,7 @@
int64_t rate_sum = 0;
int64_t dist_sum = 0;
int64_t total_sse = 0;
+ assert(bsize < BLOCK_SIZES_ALL);
for (int plane = plane_from; plane <= plane_to; ++plane) {
struct macroblock_plane *const p = &x->plane[plane];
@@ -8418,6 +8420,7 @@
pred_filter_search = is_pred_filter_search_allowed(cpi, bsize, mi_row,
mi_col, af, af, lf, lf);
if (pred_filter_search) {
+ assert(af != SWITCHABLE);
filter_idx = SWITCHABLE * (af & 0xf);
// This assert tells that (filter_x == filter_y) for non-dual filter case
assert((filter_sets[filter_idx] & 0xffff) ==