diff --git a/lib/MC/MCModule.cpp b/lib/MC/MCModule.cpp index 17619d9392e..5890b4bd028 100644 --- a/lib/MC/MCModule.cpp +++ b/lib/MC/MCModule.cpp @@ -21,7 +21,7 @@ static bool AtomComp(const MCAtom *L, uint64_t Addr) { void MCModule::map(MCAtom *NewAtom) { uint64_t Begin = NewAtom->Begin; - assert(Begin < NewAtom->End && "Creating MCAtom with endpoints reversed?"); + assert(Begin <= NewAtom->End && "Creating MCAtom with endpoints reversed?"); // Check for atoms already covering this range. AtomListTy::iterator I = std::lower_bound(atom_begin(), atom_end(), diff --git a/lib/MC/MCObjectDisassembler.cpp b/lib/MC/MCObjectDisassembler.cpp index bb3de1779e1..1ea6eed3078 100644 --- a/lib/MC/MCObjectDisassembler.cpp +++ b/lib/MC/MCObjectDisassembler.cpp @@ -126,6 +126,7 @@ void MCObjectDisassembler::buildCFG(MCModule *Module) { MCTextAtom *TA = dyn_cast(*AI); if (!TA) continue; Calls.insert(TA->getBeginAddr()); + BBInfos[TA->getBeginAddr()].Atom = TA; for (MCTextAtom::const_iterator II = TA->begin(), IE = TA->end(); II != IE; ++II) { if (MIA.isTerminator(II->Inst)) @@ -145,7 +146,6 @@ void MCObjectDisassembler::buildCFG(MCModule *Module) { MCAtom *A = Module->findAtomContaining(*SI); if (!A) continue; MCTextAtom *TA = cast(A); - BBInfos[TA->getBeginAddr()].Atom = TA; if (TA->getBeginAddr() == *SI) continue; MCTextAtom *NewAtom = TA->split(*SI);