aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2024-02-28 12:06:41 +0100
committerRichard Henderson <richard.henderson@linaro.org>2024-02-29 11:36:05 -1000
commitff202817dc2b0b3b42992fa7f1ce503f081068fe (patch)
tree8c4761fac1ce2796ad0b554dc3948646d2c2f893
parentb816e1b5ba58a986b10cd830d6617f351979ab91 (diff)
downloadqemu-ff202817dc2b0b3b42992fa7f1ce503f081068fe.zip
qemu-ff202817dc2b0b3b42992fa7f1ce503f081068fe.tar.gz
qemu-ff202817dc2b0b3b42992fa7f1ce503f081068fe.tar.bz2
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: ceb9ee06b71 ("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>
-rw-r--r--tcg/optimize.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/tcg/optimize.c b/tcg/optimize.c
index 79e7016..752cc5c 100644
--- a/tcg/optimize.c
+++ b/tcg/optimize.c
@@ -2102,7 +2102,8 @@ static bool fold_remainder(OptContext *ctx, TCGOp *op)
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];
TCGArg ret, src1, src2;
TCGOp *op2;