The compiler cannot determine whether the return values of the xtensa_operand_is_register(isa, opc, opnd) and xtensa_operand_is_visible(isa, opc, opnd) functions are the same. So,it assumes that 'rf' is not assigned, but it's used.
The compiler showed warning: target/xtensa/translate.c: In function ‘disas_xtensa_insn’: target/xtensa/translate.c:985:43: warning: ‘rf’ may be used uninitialized in this function [-Wmaybe-uninitialized] 985 | arg[vopnd].num_bits = xtensa_regfile_num_bits(isa, rf); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Add a default value for 'rf' to prevented the warning. Reported-by: Euler Robot <euler.ro...@huawei.com> Signed-off-by: Chen Qun <kuhn.chen...@huawei.com> --- Cc: Max Filippov <jcmvb...@gmail.com> --- target/xtensa/translate.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/xtensa/translate.c b/target/xtensa/translate.c index 944a157747..eea851bbe7 100644 --- a/target/xtensa/translate.c +++ b/target/xtensa/translate.c @@ -953,7 +953,7 @@ static void disas_xtensa_insn(CPUXtensaState *env, DisasContext *dc) for (opnd = vopnd = 0; opnd < opnds; ++opnd) { void **register_file = NULL; - xtensa_regfile rf; + xtensa_regfile rf = -1; if (xtensa_operand_is_register(isa, opc, opnd)) { rf = xtensa_operand_regfile(isa, opc, opnd); -- 2.27.0