diff options
Diffstat (limited to 'llvm/lib/MC/MCObjectDisassembler.cpp')
-rw-r--r-- | llvm/lib/MC/MCObjectDisassembler.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/llvm/lib/MC/MCObjectDisassembler.cpp b/llvm/lib/MC/MCObjectDisassembler.cpp index fa4663740d3..16a110f09bf 100644 --- a/llvm/lib/MC/MCObjectDisassembler.cpp +++ b/llvm/lib/MC/MCObjectDisassembler.cpp @@ -135,11 +135,13 @@ void MCObjectDisassembler::buildSectionAtoms(MCModule *Module) { Text->addInst(Inst, InstSize); InvalidData = 0; } else { + assert(InstSize && "getInstruction() consumed no bytes"); if (!InvalidData) { Text = 0; - InvalidData = Module->createDataAtom(CurAddr, EndAddr); + InvalidData = Module->createDataAtom(CurAddr, CurAddr+InstSize - 1); } - InvalidData->addData(Contents[Index]); + for (uint64_t I = 0; I < InstSize; ++I) + InvalidData->addData(Contents[Index+I]); } } } else { |