From 8943574b44bdc9470df67d91cec39ece85b7332f Mon Sep 17 00:00:00 2001 From: Benjamin Kramer Date: Sun, 1 Jan 2012 17:55:36 +0000 Subject: [PATCH] X86Disassembler: Fix undefined behavior found by GCC 4.6 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147404 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/X86/Disassembler/X86DisassemblerDecoder.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/Target/X86/Disassembler/X86DisassemblerDecoder.c b/lib/Target/X86/Disassembler/X86DisassemblerDecoder.c index c915df0049f..2ab2f74af94 100644 --- a/lib/Target/X86/Disassembler/X86DisassemblerDecoder.c +++ b/lib/Target/X86/Disassembler/X86DisassemblerDecoder.c @@ -1502,9 +1502,11 @@ static int readOperands(struct InternalInstruction* insn) { return -1; case ENCODING_IB: if (sawRegImm) { - // saw a register immediate so don't read again and instead split the previous immediate - // FIXME: This is a hack - insn->immediates[insn->numImmediatesConsumed++] = insn->immediates[insn->numImmediatesConsumed - 1] & 0xf; + // Saw a register immediate so don't read again and instead split the + // previous immediate. FIXME: This is a hack + insn->immediates[insn->numImmediatesConsumed] = + insn->immediates[insn->numImmediatesConsumed - 1] & 0xf; + ++insn->numImmediatesConsumed; break; } if (readImmediate(insn, 1))