tcg/optimize: fix uninitialized variable
The variables uext_opc and sext_opc are used without initialization if
TCG_TARGET_extract_i{32,64}_valid returns false. The result, depending
on the compiler, might be the generation of extract and sextract opcodes
with invalid offset and count, or just random data in the TCG opcode
stream.
Fixes: ceb9ee06b7
("tcg/optimize: Handle TCG_COND_TST{EQ,NE}", 2024-02-03)
Cc: Richard Henderson <pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-Id: <20240228110641.287205-1-pbonzini@redhat.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
b816e1b5ba
commit
ff202817dc
@ -2102,7 +2102,8 @@ static bool fold_remainder(OptContext *ctx, TCGOp *op)
|
|||||||
|
|
||||||
static void fold_setcond_tst_pow2(OptContext *ctx, TCGOp *op, bool neg)
|
static void fold_setcond_tst_pow2(OptContext *ctx, TCGOp *op, bool neg)
|
||||||
{
|
{
|
||||||
TCGOpcode and_opc, sub_opc, xor_opc, neg_opc, shr_opc, uext_opc, sext_opc;
|
TCGOpcode and_opc, sub_opc, xor_opc, neg_opc, shr_opc;
|
||||||
|
TCGOpcode uext_opc = 0, sext_opc = 0;
|
||||||
TCGCond cond = op->args[3];
|
TCGCond cond = op->args[3];
|
||||||
TCGArg ret, src1, src2;
|
TCGArg ret, src1, src2;
|
||||||
TCGOp *op2;
|
TCGOp *op2;
|
||||||
|
Loading…
Reference in New Issue
Block a user