diff options
author | Ahmed Bougacha <ahmed.bougacha@gmail.com> | 2013-08-21 07:27:55 +0000 |
---|---|---|
committer | Ahmed Bougacha <ahmed.bougacha@gmail.com> | 2013-08-21 07:27:55 +0000 |
commit | 7dac32d07d54231ba203f7c32f3a9f8e6730810f (patch) | |
tree | 080adb227055f57d1b5213027ab06746dcaf8b6e /lib/MC/MCModule.cpp | |
parent | dca54eab53fe5d6d203adaa5ea3004586fc3c093 (diff) | |
download | external_llvm-7dac32d07d54231ba203f7c32f3a9f8e6730810f.tar.gz external_llvm-7dac32d07d54231ba203f7c32f3a9f8e6730810f.tar.bz2 external_llvm-7dac32d07d54231ba203f7c32f3a9f8e6730810f.zip |
MC CFG: Keep pointer to parent MCModule in created MCFunctions.
Also, drive-by cleaning around createFunction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188875 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/MC/MCModule.cpp')
-rw-r--r-- | lib/MC/MCModule.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/MC/MCModule.cpp b/lib/MC/MCModule.cpp index 5890b4bd02..9a9d90e5b6 100644 --- a/lib/MC/MCModule.cpp +++ b/lib/MC/MCModule.cpp @@ -54,9 +54,13 @@ void MCModule::remap(MCAtom *Atom, uint64_t NewBegin, uint64_t NewEnd) { assert(*I == Atom && "Previous atom mapping was invalid!"); Atoms.erase(I); + // FIXME: special case NewBegin == Atom->Begin + // Insert the new mapping. AtomListTy::iterator NewI = std::lower_bound(atom_begin(), atom_end(), NewBegin, AtomComp); + assert((NewI == atom_end() || (*NewI)->getBeginAddr() > Atom->End) + && "Offset range already occupied!"); Atoms.insert(NewI, Atom); // Update the atom internal bounds. @@ -80,8 +84,8 @@ MCAtom *MCModule::findAtomContaining(uint64_t Addr) { return 0; } -MCFunction *MCModule::createFunction(const StringRef &Name) { - Functions.push_back(new MCFunction(Name)); +MCFunction *MCModule::createFunction(StringRef Name) { + Functions.push_back(new MCFunction(Name, this)); return Functions.back(); } |