On 7/30/20 1:57 PM, Kaige Li wrote: > When I compile qemu with such as: > > git clone https://git.qemu.org/git/qemu.git > cd qemu > git submodule init > git submodule update --recursive > ./configure > make
Again, timeless information is not useful. > > There is error log: > > /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; > ^ > cc1: all warnings being treated as errors Again, what compiler / version are you using? My guess is you are using an old GCC, and I wonder if it is still supported. > > So, add an initiallization value NULL for fn to fix this. > > Signed-off-by: Kaige Li <lika...@loongson.cn> > --- > target/arm/translate-a64.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/target/arm/translate-a64.c b/target/arm/translate-a64.c > index 8c07649..c98dfb1 100644 > --- a/target/arm/translate-a64.c > +++ b/target/arm/translate-a64.c > @@ -3315,7 +3315,7 @@ static void disas_ldst_atomic(DisasContext *s, uint32_t > insn, > bool r = extract32(insn, 22, 1); > bool a = extract32(insn, 23, 1); > TCGv_i64 tcg_rs, clean_addr; > - AtomicThreeOpFn *fn; > + AtomicThreeOpFn *fn = NULL; > > if (is_vector || !dc_isar_feature(aa64_atomics, s)) { > unallocated_encoding(s); >