diff --git a/bolt/include/bolt/Core/BinarySection.h b/bolt/include/bolt/Core/BinarySection.h --- a/bolt/include/bolt/Core/BinarySection.h +++ b/bolt/include/bolt/Core/BinarySection.h @@ -316,16 +316,7 @@ /// Add a new relocation at the given /p Offset. void addRelocation(uint64_t Offset, MCSymbol *Symbol, uint64_t Type, - uint64_t Addend, uint64_t Value = 0, - bool Pending = false) { - assert(Offset < getSize() && "offset not within section bounds"); - if (!Pending) { - Relocations.emplace(Relocation{Offset, Symbol, Type, Addend, Value}); - } else { - PendingRelocations.emplace_back( - Relocation{Offset, Symbol, Type, Addend, Value}); - } - } + uint64_t Addend, uint64_t Value = 0, bool Pending = false); /// Add a dynamic relocation at the given /p Offset. void addDynamicRelocation(uint64_t Offset, MCSymbol *Symbol, uint64_t Type, diff --git a/bolt/lib/Core/BinarySection.cpp b/bolt/lib/Core/BinarySection.cpp --- a/bolt/lib/Core/BinarySection.cpp +++ b/bolt/lib/Core/BinarySection.cpp @@ -176,6 +176,20 @@ void BinarySection::clearRelocations() { clearList(Relocations); } +void BinarySection::addRelocation(uint64_t Offset, MCSymbol *Symbol, + uint64_t Type, uint64_t Addend, + uint64_t Value, bool Pending) { + assert(Offset < getSize() && "offset not within section bounds"); + LLVM_DEBUG(dbgs() << formatv( + "BOLT-DEBUG: addRelocation in {0}, @{1:x} against {2}\n", + getName(), Offset, Symbol->getName())); + Relocation R{Offset, Symbol, Type, Addend, Value}; + if (Pending) + PendingRelocations.emplace_back(R); + else + Relocations.emplace(R); +} + void BinarySection::print(raw_ostream &OS) const { OS << getName() << ", " << "0x" << Twine::utohexstr(getAddress()) << ", " << getSize() << " (0x"