Fix issues reported by Coverity static analysis (#1974)

This commit is contained in:
Wenyong Huang 2023-02-22 11:10:21 +08:00 committed by GitHub
parent bb5629811f
commit 0fa0813a5a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 21 additions and 7 deletions

View File

@ -1657,8 +1657,6 @@ wasm_val_to_rt_val(WASMModuleInstanceCommon *inst_comm_rt, uint8 val_type_rt,
ret = ret =
wasm_externref_obj2ref(inst_comm_rt, v->of.ref, (uint32 *)data); wasm_externref_obj2ref(inst_comm_rt, v->of.ref, (uint32 *)data);
break; break;
#else
(void)inst_comm_rt;
#endif #endif
default: default:
LOG_WARNING("unexpected value type %d", val_type_rt); LOG_WARNING("unexpected value type %d", val_type_rt);
@ -1666,6 +1664,7 @@ wasm_val_to_rt_val(WASMModuleInstanceCommon *inst_comm_rt, uint8 val_type_rt,
break; break;
} }
(void)inst_comm_rt;
return ret; return ret;
} }

View File

@ -560,6 +560,7 @@ address_of_const(JitCompContext *cc, JitReg reg, unsigned size)
unsigned no = jit_reg_no(reg); unsigned no = jit_reg_no(reg);
unsigned idx = no & ~_JIT_REG_CONST_IDX_FLAG; unsigned idx = no & ~_JIT_REG_CONST_IDX_FLAG;
bh_assert(kind < JIT_REG_KIND_L32);
bh_assert(jit_reg_is_const_idx(reg) && idx < cc->_const_val._num[kind]); bh_assert(jit_reg_is_const_idx(reg) && idx < cc->_const_val._num[kind]);
return cc->_const_val._value[kind] + size * idx; return cc->_const_val._value[kind] + size * idx;
@ -572,6 +573,7 @@ next_of_const(JitCompContext *cc, JitReg reg)
unsigned no = jit_reg_no(reg); unsigned no = jit_reg_no(reg);
unsigned idx = no & ~_JIT_REG_CONST_IDX_FLAG; unsigned idx = no & ~_JIT_REG_CONST_IDX_FLAG;
bh_assert(kind < JIT_REG_KIND_L32);
bh_assert(jit_reg_is_const_idx(reg) && idx < cc->_const_val._num[kind]); bh_assert(jit_reg_is_const_idx(reg) && idx < cc->_const_val._num[kind]);
return cc->_const_val._next[kind][idx]; return cc->_const_val._next[kind][idx];

View File

@ -1688,6 +1688,7 @@ jit_cc_is_hreg(JitCompContext *cc, JitReg reg)
unsigned kind = jit_reg_kind(reg); unsigned kind = jit_reg_kind(reg);
unsigned no = jit_reg_no(reg); unsigned no = jit_reg_no(reg);
bh_assert(jit_reg_is_variable(reg)); bh_assert(jit_reg_is_variable(reg));
bh_assert(kind < JIT_REG_KIND_L32);
return no < cc->hreg_info->info[kind].num; return no < cc->hreg_info->info[kind].num;
} }
@ -1705,6 +1706,7 @@ jit_cc_is_hreg_fixed(JitCompContext *cc, JitReg reg)
unsigned kind = jit_reg_kind(reg); unsigned kind = jit_reg_kind(reg);
unsigned no = jit_reg_no(reg); unsigned no = jit_reg_no(reg);
bh_assert(jit_cc_is_hreg(cc, reg)); bh_assert(jit_cc_is_hreg(cc, reg));
bh_assert(kind < JIT_REG_KIND_L32);
return !!cc->hreg_info->info[kind].fixed[no]; return !!cc->hreg_info->info[kind].fixed[no];
} }
@ -1722,6 +1724,7 @@ jit_cc_is_hreg_caller_saved_native(JitCompContext *cc, JitReg reg)
unsigned kind = jit_reg_kind(reg); unsigned kind = jit_reg_kind(reg);
unsigned no = jit_reg_no(reg); unsigned no = jit_reg_no(reg);
bh_assert(jit_cc_is_hreg(cc, reg)); bh_assert(jit_cc_is_hreg(cc, reg));
bh_assert(kind < JIT_REG_KIND_L32);
return !!cc->hreg_info->info[kind].caller_saved_native[no]; return !!cc->hreg_info->info[kind].caller_saved_native[no];
} }
@ -1739,6 +1742,7 @@ jit_cc_is_hreg_caller_saved_jitted(JitCompContext *cc, JitReg reg)
unsigned kind = jit_reg_kind(reg); unsigned kind = jit_reg_kind(reg);
unsigned no = jit_reg_no(reg); unsigned no = jit_reg_no(reg);
bh_assert(jit_cc_is_hreg(cc, reg)); bh_assert(jit_cc_is_hreg(cc, reg));
bh_assert(kind < JIT_REG_KIND_L32);
return !!cc->hreg_info->info[kind].caller_saved_jitted[no]; return !!cc->hreg_info->info[kind].caller_saved_jitted[no];
} }

View File

@ -156,6 +156,7 @@ rc_get_vr(RegallocContext *rc, JitReg vreg)
unsigned no = jit_reg_no(vreg); unsigned no = jit_reg_no(vreg);
bh_assert(jit_reg_is_variable(vreg)); bh_assert(jit_reg_is_variable(vreg));
bh_assert(kind < JIT_REG_KIND_L32);
return &rc->vregs[kind][no]; return &rc->vregs[kind][no];
} }
@ -175,6 +176,7 @@ rc_get_hr(RegallocContext *rc, JitReg hreg)
unsigned no = jit_reg_no(hreg); unsigned no = jit_reg_no(hreg);
bh_assert(jit_reg_is_variable(hreg) && jit_cc_is_hreg(rc->cc, hreg)); bh_assert(jit_reg_is_variable(hreg) && jit_cc_is_hreg(rc->cc, hreg));
bh_assert(kind < JIT_REG_KIND_L32);
return &rc->hregs[kind][no]; return &rc->hregs[kind][no];
} }
@ -208,7 +210,9 @@ static unsigned
get_reg_stride(JitReg reg) get_reg_stride(JitReg reg)
{ {
static const uint8 strides[] = { 0, 1, 2, 1, 2, 2, 4, 8, 0 }; static const uint8 strides[] = { 0, 1, 2, 1, 2, 2, 4, 8, 0 };
return strides[jit_reg_kind(reg)]; uint32 kind = jit_reg_kind(reg);
bh_assert(kind <= JIT_REG_KIND_L32);
return strides[kind];
} }
/** /**
@ -582,13 +586,17 @@ static JitReg
allocate_hreg(RegallocContext *rc, JitReg vreg, JitInsn *insn, int distance) allocate_hreg(RegallocContext *rc, JitReg vreg, JitInsn *insn, int distance)
{ {
const int kind = jit_reg_kind(vreg); const int kind = jit_reg_kind(vreg);
const HardReg *hregs = rc->hregs[kind]; const HardReg *hregs;
const unsigned hreg_num = jit_cc_hreg_num(rc->cc, kind); unsigned hreg_num;
JitReg hreg, vreg_to_reload = 0; JitReg hreg, vreg_to_reload = 0;
int min_distance = distance, vr_distance; int min_distance = distance, vr_distance;
VirtualReg *vr = rc_get_vr(rc, vreg); VirtualReg *vr = rc_get_vr(rc, vreg);
unsigned i; unsigned i;
bh_assert(kind < JIT_REG_KIND_L32);
hregs = rc->hregs[kind];
hreg_num = jit_cc_hreg_num(rc->cc, kind);
if (hreg_num == 0) if (hreg_num == 0)
/* Unsupported hard register kind. */ /* Unsupported hard register kind. */
{ {

View File

@ -61,8 +61,9 @@ os_thread_create_with_prio(korp_tid *tid, thread_start_routine_t start,
pthread_attr_init(&tattr); pthread_attr_init(&tattr);
pthread_attr_setdetachstate(&tattr, PTHREAD_CREATE_JOINABLE); pthread_attr_setdetachstate(&tattr, PTHREAD_CREATE_JOINABLE);
if (pthread_attr_setstacksize(&tattr, stack_size) != 0) { if (pthread_attr_setstacksize(&tattr, stack_size) != 0) {
os_printf("Invalid thread stack size %u. Min stack size on Linux = %u", os_printf("Invalid thread stack size %u. "
stack_size, PTHREAD_STACK_MIN); "Min stack size on Linux = %u\n",
stack_size, (unsigned int)PTHREAD_STACK_MIN);
pthread_attr_destroy(&tattr); pthread_attr_destroy(&tattr);
return BHT_ERROR; return BHT_ERROR;
} }