Fix remaining static analysis warnings
Fix or suppress the remaining warnings generated by static analysis. This is a necessary step before we can incorporate static analysis into CI. Where possible, I've preferred to modify the code itself instead of just disabling the warning with a magic comment, so that if we decide to use different static analysis tools in the future we will be covered against them raising similar warnings.
This commit is contained in:
committed by
Qi Wang
parent
210f0d0b2b
commit
bb0333e745
@@ -325,6 +325,8 @@ imalloc_fastpath(size_t size, void *(fallback_alloc)(size_t)) {
|
||||
tcache_t *tcache = tsd_tcachep_get(tsd);
|
||||
assert(tcache == tcache_get(tsd));
|
||||
cache_bin_t *bin = &tcache->bins[ind];
|
||||
/* Suppress spurious warning from static analysis */
|
||||
assert(bin != NULL);
|
||||
bool tcache_success;
|
||||
void *ret;
|
||||
|
||||
|
@@ -127,6 +127,7 @@ phn_merge_ordered(void *phn0, void *phn1, size_t offset,
|
||||
phn0child = phn_lchild_get(phn0, offset);
|
||||
phn_next_set(phn1, phn0child, offset);
|
||||
if (phn0child != NULL) {
|
||||
/* NOLINTNEXTLINE(readability-suspicious-call-argument) */
|
||||
phn_prev_set(phn0child, phn1, offset);
|
||||
}
|
||||
phn_lchild_set(phn0, phn1, offset);
|
||||
@@ -143,6 +144,7 @@ phn_merge(void *phn0, void *phn1, size_t offset, ph_cmp_t cmp) {
|
||||
phn_merge_ordered(phn0, phn1, offset, cmp);
|
||||
result = phn0;
|
||||
} else {
|
||||
/* NOLINTNEXTLINE(readability-suspicious-call-argument) */
|
||||
phn_merge_ordered(phn1, phn0, offset, cmp);
|
||||
result = phn1;
|
||||
}
|
||||
@@ -188,10 +190,12 @@ phn_merge_siblings(void *phn, size_t offset, ph_cmp_t cmp) {
|
||||
phn_prev_set(phn1, NULL, offset);
|
||||
phn_next_set(phn1, NULL, offset);
|
||||
phn0 = phn_merge(phn0, phn1, offset, cmp);
|
||||
/* NOLINTNEXTLINE(readability-suspicious-call-argument) */
|
||||
phn_next_set(tail, phn0, offset);
|
||||
tail = phn0;
|
||||
phn0 = phnrest;
|
||||
} else {
|
||||
/* NOLINTNEXTLINE(readability-suspicious-call-argument) */
|
||||
phn_next_set(tail, phn0, offset);
|
||||
tail = phn0;
|
||||
phn0 = NULL;
|
||||
@@ -210,6 +214,7 @@ phn_merge_siblings(void *phn, size_t offset, ph_cmp_t cmp) {
|
||||
if (head == NULL) {
|
||||
break;
|
||||
}
|
||||
/* NOLINTNEXTLINE(readability-suspicious-call-argument) */
|
||||
phn_next_set(tail, phn0, offset);
|
||||
tail = phn0;
|
||||
phn0 = head;
|
||||
@@ -298,6 +303,7 @@ ph_try_aux_merge_pair(ph_t *ph, size_t offset, ph_cmp_t cmp) {
|
||||
phn0 = phn_merge(phn0, phn1, offset, cmp);
|
||||
phn_next_set(phn0, next_phn1, offset);
|
||||
if (next_phn1 != NULL) {
|
||||
/* NOLINTNEXTLINE(readability-suspicious-call-argument) */
|
||||
phn_prev_set(next_phn1, phn0, offset);
|
||||
}
|
||||
phn_next_set(ph->root, phn0, offset);
|
||||
|
@@ -867,6 +867,7 @@ a_prefix##remove(a_rbt_type *rbtree, a_type *node) { \
|
||||
} \
|
||||
} \
|
||||
rb_remove_safety_checks(nodep, __func__); \
|
||||
assert(nodep != NULL); \
|
||||
assert(nodep->node == node); \
|
||||
pathp--; \
|
||||
if (pathp->node != node) { \
|
||||
|
@@ -268,6 +268,10 @@ rtree_contents_encode(rtree_contents_t contents, void **bits,
|
||||
unsigned *additional) {
|
||||
#ifdef RTREE_LEAF_COMPACT
|
||||
*bits = (void *)rtree_leaf_elm_bits_encode(contents);
|
||||
/* Suppress spurious warning from static analysis */
|
||||
if (config_debug) {
|
||||
*additional = 0;
|
||||
}
|
||||
#else
|
||||
*additional = (unsigned)contents.metadata.slab
|
||||
| ((unsigned)contents.metadata.is_head << 1)
|
||||
@@ -299,7 +303,6 @@ rtree_leaf_elm_write(tsdn_t *tsdn, rtree_t *rtree,
|
||||
assert((uintptr_t)contents.edata % EDATA_ALIGNMENT == 0);
|
||||
void *bits;
|
||||
unsigned additional;
|
||||
|
||||
rtree_contents_encode(contents, &bits, &additional);
|
||||
rtree_leaf_elm_write_commit(tsdn, rtree, elm, bits, additional);
|
||||
}
|
||||
|
@@ -341,6 +341,9 @@ witness_lock(witness_tsdn_t *witness_tsdn, witness_t *witness) {
|
||||
witness_lock_error(witnesses, witness);
|
||||
}
|
||||
|
||||
/* Suppress spurious warning from static analysis */
|
||||
assert(ql_empty(witnesses) ||
|
||||
qr_prev(ql_first(witnesses), link) != NULL);
|
||||
ql_elm_new(witness, link);
|
||||
ql_tail_insert(witnesses, witness, link);
|
||||
}
|
||||
|
Reference in New Issue
Block a user