Fix static analysis warnings.

This commit is contained in:
guangli-dai 2023-12-13 15:21:09 -08:00 committed by Qi Wang
parent e4817c8d89
commit eda05b3994
9 changed files with 33 additions and 15 deletions

View file

@ -63,7 +63,7 @@ void arena_do_deferred_work(tsdn_t *tsdn, arena_t *arena);
void arena_reset(tsd_t *tsd, arena_t *arena);
void arena_destroy(tsd_t *tsd, arena_t *arena);
void arena_cache_bin_fill_small(tsdn_t *tsdn, arena_t *arena,
cache_bin_t *cache_bin, szind_t binind, const unsigned nfill);
cache_bin_t *cache_bin, szind_t binind, const cache_bin_sz_t nfill);
void *arena_malloc_hard(tsdn_t *tsdn, arena_t *arena, size_t size,
szind_t ind, bool zero, bool slab);

View file

@ -1019,7 +1019,7 @@ arena_bin_choose(tsdn_t *tsdn, arena_t *arena, szind_t binind,
void
arena_cache_bin_fill_small(tsdn_t *tsdn, arena_t *arena,
cache_bin_t *cache_bin, szind_t binind, const unsigned nfill) {
cache_bin_t *cache_bin, szind_t binind, const cache_bin_sz_t nfill) {
assert(cache_bin_ncached_get_local(cache_bin) == 0);
assert(nfill != 0);
@ -1056,7 +1056,7 @@ arena_cache_bin_fill_small(tsdn_t *tsdn, arena_t *arena,
bool made_progress = true;
edata_t *fresh_slab = NULL;
bool alloc_and_retry = false;
unsigned filled = 0;
cache_bin_sz_t filled = 0;
unsigned binshard;
bin_t *bin = arena_bin_choose(tsdn, arena, binind, &binshard);

View file

@ -201,8 +201,6 @@ ecache_evict(tsdn_t *tsdn, pac_t *pac, ehooks_t *ehooks,
* concurrent operations.
*/
switch (ecache->state) {
case extent_state_active:
not_reached();
case extent_state_dirty:
case extent_state_muzzy:
emap_update_edata_state(tsdn, pac->emap, edata,
@ -211,6 +209,9 @@ ecache_evict(tsdn_t *tsdn, pac_t *pac, ehooks_t *ehooks,
case extent_state_retained:
extent_deregister(tsdn, pac, edata);
break;
case extent_state_active:
case extent_state_transition:
case extent_state_merging:
default:
not_reached();
}

View file

@ -460,8 +460,12 @@ arena_bind(tsd_t *tsd, unsigned ind, bool internal) {
tsd_iarena_set(tsd, arena);
} else {
tsd_arena_set(tsd, arena);
unsigned shard = atomic_fetch_add_u(&arena->binshard_next, 1,
ATOMIC_RELAXED);
/*
* While shard acts as a random seed, the cast below should
* not make much difference.
*/
uint8_t shard = (uint8_t)atomic_fetch_add_u(
&arena->binshard_next, 1, ATOMIC_RELAXED);
tsd_binshards_t *bins = tsd_binshardsp_get(tsd);
for (unsigned i = 0; i < SC_NBINS; i++) {
assert(bin_infos[i].n_shards > 0 &&

View file

@ -29,6 +29,10 @@ pac_decay_data_get(pac_t *pac, extent_state_t state,
*r_decay_stats = &pac->stats->decay_muzzy;
*r_ecache = &pac->ecache_muzzy;
return;
case extent_state_active:
case extent_state_retained:
case extent_state_transition:
case extent_state_merging:
default:
unreachable();
}
@ -385,8 +389,6 @@ pac_decay_stashed(tsdn_t *tsdn, pac_t *pac, decay_t *decay,
npurged += npages;
switch (ecache->state) {
case extent_state_active:
not_reached();
case extent_state_dirty:
if (try_muzzy) {
err = extent_purge_lazy_wrapper(tsdn, ehooks,
@ -402,7 +404,10 @@ pac_decay_stashed(tsdn_t *tsdn, pac_t *pac, decay_t *decay,
extent_dalloc_wrapper(tsdn, pac, ehooks, edata);
nunmapped += npages;
break;
case extent_state_active:
case extent_state_retained:
case extent_state_transition:
case extent_state_merging:
default:
not_reached();
}

View file

@ -277,7 +277,8 @@ prof_sample_new_event_wait(tsd_t *tsd) {
* otherwise bytes_until_sample would be 0 if u is exactly 1.0.
*/
uint64_t r = prng_lg_range_u64(tsd_prng_statep_get(tsd), 53);
double u = (r == 0U) ? 1.0 : (double)r * (1.0/9007199254740992.0L);
double u = (r == 0U) ? 1.0 : (double)((long double)r *
(1.0L/9007199254740992.0L));
return (uint64_t)(log(u) /
log(1.0 - (1.0 / (double)((uint64_t)1U << lg_prof_sample))))
+ (uint64_t)1U;

View file

@ -709,6 +709,7 @@ prof_tctx_merge_iter(prof_tctx_tree_t *tctxs, prof_tctx_t *tctx, void *arg) {
case prof_tctx_state_purgatory:
prof_tctx_merge_gctx(tsdn, tctx, tctx->gctx);
break;
case prof_tctx_state_initializing:
default:
not_reached();
}
@ -764,6 +765,7 @@ prof_tctx_finish_iter(prof_tctx_tree_t *tctxs, prof_tctx_t *tctx, void *arg) {
case prof_tctx_state_purgatory:
ret = tctx;
goto label_return;
case prof_tctx_state_initializing:
default:
not_reached();
}
@ -1393,6 +1395,8 @@ prof_tctx_destroy(tsd_t *tsd, prof_tctx_t *tctx) {
destroy_tctx = false;
destroy_gctx = false;
break;
case prof_tctx_state_initializing:
case prof_tctx_state_purgatory:
default:
not_reached();
destroy_tctx = false;

View file

@ -100,7 +100,8 @@ sz_boot_size2index_tab(const sc_data_t *sc_data) {
size_t max_ind = ((sz + (ZU(1) << SC_LG_TINY_MIN) - 1)
>> SC_LG_TINY_MIN);
for (; dst_ind <= max_ind && dst_ind < dst_max; dst_ind++) {
sz_size2index_tab[dst_ind] = sc_ind;
assert(sc_ind < 1 << (sizeof(uint8_t) * 8));
sz_size2index_tab[dst_ind] = (uint8_t)sc_ind;
}
}
}

View file

@ -250,7 +250,7 @@ tcache_alloc_small_hard(tsdn_t *tsdn, arena_t *arena,
assert(tcache_slow->arena != NULL);
assert(!tcache_bin_disabled(binind, cache_bin, tcache_slow));
unsigned nfill = cache_bin_ncached_max_get(cache_bin)
cache_bin_sz_t nfill = cache_bin_ncached_max_get(cache_bin)
>> tcache_slow->lg_fill_div[binind];
if (nfill == 0) {
nfill = 1;
@ -529,7 +529,7 @@ tcache_bin_flush_bottom(tsd_t *tsd, tcache_t *tcache, cache_bin_t *cache_bin,
cache_bin_sz_t ncached = cache_bin_ncached_get_local(cache_bin);
assert((cache_bin_sz_t)rem <= ncached);
unsigned nflush = ncached - rem;
cache_bin_sz_t nflush = ncached - (cache_bin_sz_t)rem;
CACHE_BIN_PTR_ARRAY_DECLARE(ptrs, nflush);
cache_bin_init_ptr_array_for_flush(cache_bin, &ptrs, nflush);
@ -537,7 +537,8 @@ tcache_bin_flush_bottom(tsd_t *tsd, tcache_t *tcache, cache_bin_t *cache_bin,
tcache_bin_flush_impl(tsd, tcache, cache_bin, binind, &ptrs, nflush,
small);
cache_bin_finish_flush(cache_bin, &ptrs, ncached - rem);
cache_bin_finish_flush(cache_bin, &ptrs,
ncached - (cache_bin_sz_t)rem);
}
void
@ -817,7 +818,8 @@ tcache_bin_info_compute(cache_bin_info_t tcache_bin_info[TCACHE_NBINS_MAX]) {
(unsigned)tcache_get_default_ncached_max()[i].ncached_max:
tcache_ncached_max_compute(i);
assert(ncached_max <= CACHE_BIN_NCACHED_MAX);
cache_bin_info_init(&tcache_bin_info[i], ncached_max);
cache_bin_info_init(&tcache_bin_info[i],
(cache_bin_sz_t)ncached_max);
}
}