target/arm: Avoid maybe-uninitialized warning with gcc 4.9

GCC version 4.9.4 isn't clever enough to figure out that all
execution paths in disas_ldst() that use 'fn' will have initialized
it first, and so it warns:

/home/LiKaige/qemu/target/arm/translate-a64.c: In function ‘disas_ldst’:
/home/LiKaige/qemu/target/arm/translate-a64.c:3392:5: error: ‘fn’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
fn(cpu_reg(s, rt), clean_addr, tcg_rs, get_mem_index(s),
^
/home/LiKaige/qemu/target/arm/translate-a64.c:3318:22: note: ‘fn’ was declared here
AtomicThreeOpFn *fn;
^

Make it happy by initializing the variable to NULL.

Backports commit 88a90e3de6ae99cbcfcc04c862c51f241fdf685f from qemu
This commit is contained in:
Kaige Li 2021-02-25 23:45:05 -05:00 committed by Lioncash
parent ce8282d9cd
commit 3004cc1f97

View file

@ -3508,7 +3508,7 @@ static void disas_ldst_atomic(DisasContext *s, uint32_t insn,
bool r = extract32(insn, 22, 1); bool r = extract32(insn, 22, 1);
bool a = extract32(insn, 23, 1); bool a = extract32(insn, 23, 1);
TCGv_i64 tcg_rs, clean_addr; TCGv_i64 tcg_rs, clean_addr;
AtomicThreeOpFn *fn; AtomicThreeOpFn *fn = NULL;
if (is_vector || !dc_isar_feature(aa64_atomics, s)) { if (is_vector || !dc_isar_feature(aa64_atomics, s)) {
unallocated_encoding(s); unallocated_encoding(s);