Message ID | 20200825112447.126308-4-kuhn.chenqun@huawei.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | trivial patchs for static code analyzer fixes | expand |
On Tue, 25 Aug 2020 at 12:26, Chen Qun <kuhn.chenqun@huawei.com> wrote: > > Clang static code analyzer show warning: > target/arm/translate-a64.c:8635:14: warning: Value stored to 'tcg_rn' during its > initialization is never read > TCGv_i64 tcg_rn = new_tmp_a64(s); > ^~~~~~ ~~~~~~~~~~~~~~ > target/arm/translate-a64.c:8636:14: warning: Value stored to 'tcg_rd' during its > initialization is never read > TCGv_i64 tcg_rd = new_tmp_a64(s); > ^~~~~~ ~~~~~~~~~~~~~~ > > There is a memory leak for the variable new_tmp_a64 "s". There is not, because TCG temps allocated via new_tmp_a64() are all freed via free_tmp_a64() at the end of disas_a64_insn(). > We should delete the assignment. But yes, the assignments are unused and should be deleted. If you fix the commit message, then Reviewed-by: Peter Maydell <peter.maydell@linaro.org> thanks -- PMM
> On Tue, 25 Aug 2020 at 12:26, Chen Qun <kuhn.chenqun@huawei.com> wrote: > > > > Clang static code analyzer show warning: > > target/arm/translate-a64.c:8635:14: warning: Value stored to 'tcg_rn' > > during its initialization is never read > > TCGv_i64 tcg_rn = new_tmp_a64(s); > > ^~~~~~ ~~~~~~~~~~~~~~ > > target/arm/translate-a64.c:8636:14: warning: Value stored to 'tcg_rd' > > during its initialization is never read > > TCGv_i64 tcg_rd = new_tmp_a64(s); > > ^~~~~~ ~~~~~~~~~~~~~~ > > > > There is a memory leak for the variable new_tmp_a64 "s". > > There is not, because TCG temps allocated via new_tmp_a64() are all freed via > free_tmp_a64() at the end of disas_a64_insn(). > OK, I'll delete that description later. Thanks, ChenQun
diff --git a/target/arm/translate-a64.c b/target/arm/translate-a64.c index 534c3ff5f3..c83bb85e4e 100644 --- a/target/arm/translate-a64.c +++ b/target/arm/translate-a64.c @@ -8632,8 +8632,8 @@ static void handle_scalar_simd_shli(DisasContext *s, bool insert, int size = 32 - clz32(immh) - 1; int immhb = immh << 3 | immb; int shift = immhb - (8 << size); - TCGv_i64 tcg_rn = new_tmp_a64(s); - TCGv_i64 tcg_rd = new_tmp_a64(s); + TCGv_i64 tcg_rn; + TCGv_i64 tcg_rd; if (!extract32(immh, 3, 1)) { unallocated_encoding(s);
Clang static code analyzer show warning: target/arm/translate-a64.c:8635:14: warning: Value stored to 'tcg_rn' during its initialization is never read TCGv_i64 tcg_rn = new_tmp_a64(s); ^~~~~~ ~~~~~~~~~~~~~~ target/arm/translate-a64.c:8636:14: warning: Value stored to 'tcg_rd' during its initialization is never read TCGv_i64 tcg_rd = new_tmp_a64(s); ^~~~~~ ~~~~~~~~~~~~~~ There is a memory leak for the variable new_tmp_a64 "s". We should delete the assignment. Reported-by: Euler Robot <euler.robot@huawei.com> Signed-off-by: Chen Qun <kuhn.chenqun@huawei.com> --- Cc: Peter Maydell <peter.maydell@linaro.org> Cc: qemu-arm@nongnu.org --- target/arm/translate-a64.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)