[lld] r226557 - ELF: Support detection of relocation errors during processing
Will Newton
will.newton at linaro.org
Tue Jan 20 02:37:40 PST 2015
Author: wnewton
Date: Tue Jan 20 04:37:40 2015
New Revision: 226557
URL: http://llvm.org/viewvc/llvm-project?rev=226557&view=rev
Log:
ELF: Support detection of relocation errors during processing
At the moment errors in relocation processing such as out of range
values are not detected or at best trapped by asserts which will not
be present in release builds. This patch adds support for checking
error return values from applyRelocation() calls and printing an
appropriate error message. It also adds support for printing multiple
errors rather than just the first one.
Modified:
lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64RelocationHandler.cpp
lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64RelocationHandler.h
lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64TargetHandler.cpp
lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonRelocationHandler.cpp
lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonRelocationHandler.h
lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonTargetHandler.cpp
lld/trunk/lib/ReaderWriter/ELF/Mips/MipsRelocationHandler.cpp
lld/trunk/lib/ReaderWriter/ELF/Mips/MipsRelocationHandler.h
lld/trunk/lib/ReaderWriter/ELF/Mips/MipsTargetHandler.cpp
lld/trunk/lib/ReaderWriter/ELF/PPC/PPCTargetHandler.cpp
lld/trunk/lib/ReaderWriter/ELF/PPC/PPCTargetHandler.h
lld/trunk/lib/ReaderWriter/ELF/SectionChunks.h
lld/trunk/lib/ReaderWriter/ELF/TargetHandler.h
lld/trunk/lib/ReaderWriter/ELF/X86/X86RelocationHandler.cpp
lld/trunk/lib/ReaderWriter/ELF/X86/X86RelocationHandler.h
lld/trunk/lib/ReaderWriter/ELF/X86/X86TargetHandler.cpp
lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64RelocationHandler.cpp
lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64RelocationHandler.h
lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64TargetHandler.cpp
Modified: lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64RelocationHandler.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64RelocationHandler.cpp?rev=226557&r1=226556&r2=226557&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64RelocationHandler.cpp (original)
+++ lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64RelocationHandler.cpp Tue Jan 20 04:37:40 2015
@@ -462,7 +462,7 @@ std::error_code AArch64TargetRelocationH
targetVAddress, ref.addend());
break;
default:
- unhandledReferenceType(*atom._atom, ref);
+ return make_unhandled_reloc_error();
}
return std::error_code();
Modified: lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64RelocationHandler.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64RelocationHandler.h?rev=226557&r1=226556&r2=226557&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64RelocationHandler.h (original)
+++ lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64RelocationHandler.h Tue Jan 20 04:37:40 2015
@@ -20,9 +20,6 @@ template <class ELFT> class AArch64Targe
class AArch64TargetRelocationHandler final : public TargetRelocationHandler {
public:
- AArch64TargetRelocationHandler(ELFLinkingContext &targetInfo)
- : TargetRelocationHandler(targetInfo) {}
-
std::error_code applyRelocation(ELFWriter &, llvm::FileOutputBuffer &,
const lld::AtomLayout &,
const Reference &) const override;
Modified: lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64TargetHandler.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64TargetHandler.cpp?rev=226557&r1=226556&r2=226557&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64TargetHandler.cpp (original)
+++ lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64TargetHandler.cpp Tue Jan 20 04:37:40 2015
@@ -19,7 +19,7 @@ using namespace elf;
AArch64TargetHandler::AArch64TargetHandler(AArch64LinkingContext &context)
: _context(context),
_AArch64TargetLayout(new AArch64TargetLayout<AArch64ELFType>(context)),
- _AArch64RelocationHandler(new AArch64TargetRelocationHandler(context)) {}
+ _AArch64RelocationHandler(new AArch64TargetRelocationHandler()) {}
void AArch64TargetHandler::registerRelocationNames(Registry ®istry) {
registry.addKindTable(Reference::KindNamespace::ELF,
Modified: lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonRelocationHandler.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonRelocationHandler.cpp?rev=226557&r1=226556&r2=226557&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonRelocationHandler.cpp (original)
+++ lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonRelocationHandler.cpp Tue Jan 20 04:37:40 2015
@@ -344,7 +344,7 @@ std::error_code HexagonTargetRelocationH
break;
default:
- unhandledReferenceType(*atom._atom, ref);
+ return make_unhandled_reloc_error();
}
return std::error_code();
Modified: lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonRelocationHandler.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonRelocationHandler.h?rev=226557&r1=226556&r2=226557&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonRelocationHandler.h (original)
+++ lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonRelocationHandler.h Tue Jan 20 04:37:40 2015
@@ -20,9 +20,8 @@ class HexagonTargetHandler;
class HexagonTargetRelocationHandler final : public TargetRelocationHandler {
public:
- HexagonTargetRelocationHandler(HexagonTargetLayout<HexagonELFType> &layout,
- ELFLinkingContext &targetInfo)
- : TargetRelocationHandler(targetInfo), _hexagonTargetLayout(layout) {}
+ HexagonTargetRelocationHandler(HexagonTargetLayout<HexagonELFType> &layout)
+ : _hexagonTargetLayout(layout) {}
std::error_code applyRelocation(ELFWriter &, llvm::FileOutputBuffer &,
const lld::AtomLayout &,
Modified: lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonTargetHandler.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonTargetHandler.cpp?rev=226557&r1=226556&r2=226557&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonTargetHandler.cpp (original)
+++ lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonTargetHandler.cpp Tue Jan 20 04:37:40 2015
@@ -23,7 +23,7 @@ HexagonTargetHandler::HexagonTargetHandl
_hexagonRuntimeFile(new HexagonRuntimeFile<HexagonELFType>(context)),
_hexagonTargetLayout(new HexagonTargetLayout<HexagonELFType>(context)),
_hexagonRelocationHandler(new HexagonTargetRelocationHandler(
- *_hexagonTargetLayout.get(), context)) {}
+ *_hexagonTargetLayout.get())) {}
std::unique_ptr<Writer> HexagonTargetHandler::getWriter() {
switch (_hexagonLinkingContext.getOutputELFType()) {
Modified: lld/trunk/lib/ReaderWriter/ELF/Mips/MipsRelocationHandler.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/Mips/MipsRelocationHandler.cpp?rev=226557&r1=226556&r2=226557&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/Mips/MipsRelocationHandler.cpp (original)
+++ lld/trunk/lib/ReaderWriter/ELF/Mips/MipsRelocationHandler.cpp Tue Jan 20 04:37:40 2015
@@ -341,7 +341,7 @@ std::error_code MipsTargetRelocationHand
// Do nothing.
break;
default:
- unhandledReferenceType(*atom._atom, ref);
+ return make_unhandled_reloc_error();
}
if (shuffle)
Modified: lld/trunk/lib/ReaderWriter/ELF/Mips/MipsRelocationHandler.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/Mips/MipsRelocationHandler.h?rev=226557&r1=226556&r2=226557&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/Mips/MipsRelocationHandler.h (original)
+++ lld/trunk/lib/ReaderWriter/ELF/Mips/MipsRelocationHandler.h Tue Jan 20 04:37:40 2015
@@ -18,9 +18,8 @@ class MipsTargetHandler;
class MipsTargetRelocationHandler final : public TargetRelocationHandler {
public:
- MipsTargetRelocationHandler(MipsTargetLayout<Mips32ElELFType> &layout,
- ELFLinkingContext &targetInfo)
- : TargetRelocationHandler(targetInfo), _mipsTargetLayout(layout) {}
+ MipsTargetRelocationHandler(MipsTargetLayout<Mips32ElELFType> &layout)
+ : _mipsTargetLayout(layout) {}
std::error_code applyRelocation(ELFWriter &, llvm::FileOutputBuffer &,
const lld::AtomLayout &,
Modified: lld/trunk/lib/ReaderWriter/ELF/Mips/MipsTargetHandler.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/Mips/MipsTargetHandler.cpp?rev=226557&r1=226556&r2=226557&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/Mips/MipsTargetHandler.cpp (original)
+++ lld/trunk/lib/ReaderWriter/ELF/Mips/MipsTargetHandler.cpp Tue Jan 20 04:37:40 2015
@@ -21,8 +21,7 @@ typedef llvm::object::ELFType<llvm::supp
MipsTargetHandler::MipsTargetHandler(MipsLinkingContext &ctx)
: _ctx(ctx), _runtimeFile(new MipsRuntimeFile<Mips32ElELFType>(ctx)),
_targetLayout(new MipsTargetLayout<Mips32ElELFType>(ctx)),
- _relocationHandler(new MipsTargetRelocationHandler(*_targetLayout, ctx)) {
-}
+ _relocationHandler(new MipsTargetRelocationHandler(*_targetLayout)) {}
std::unique_ptr<Writer> MipsTargetHandler::getWriter() {
switch (_ctx.getOutputELFType()) {
Modified: lld/trunk/lib/ReaderWriter/ELF/PPC/PPCTargetHandler.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/PPC/PPCTargetHandler.cpp?rev=226557&r1=226556&r2=226557&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/PPC/PPCTargetHandler.cpp (original)
+++ lld/trunk/lib/ReaderWriter/ELF/PPC/PPCTargetHandler.cpp Tue Jan 20 04:37:40 2015
@@ -52,7 +52,7 @@ std::error_code PPCTargetRelocationHandl
break;
default:
- unhandledReferenceType(*atom._atom, ref);
+ return make_unhandled_reloc_error();
}
return std::error_code();
@@ -61,7 +61,7 @@ std::error_code PPCTargetRelocationHandl
PPCTargetHandler::PPCTargetHandler(PPCLinkingContext &context)
: _ppcLinkingContext(context),
_ppcTargetLayout(new PPCTargetLayout<PPCELFType>(context)),
- _ppcRelocationHandler(new PPCTargetRelocationHandler(context)) {}
+ _ppcRelocationHandler(new PPCTargetRelocationHandler()) {}
void PPCTargetHandler::registerRelocationNames(Registry ®istry) {
registry.addKindTable(Reference::KindNamespace::ELF,
Modified: lld/trunk/lib/ReaderWriter/ELF/PPC/PPCTargetHandler.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/PPC/PPCTargetHandler.h?rev=226557&r1=226556&r2=226557&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/PPC/PPCTargetHandler.h (original)
+++ lld/trunk/lib/ReaderWriter/ELF/PPC/PPCTargetHandler.h Tue Jan 20 04:37:40 2015
@@ -25,9 +25,6 @@ public:
class PPCTargetRelocationHandler final : public TargetRelocationHandler {
public:
- PPCTargetRelocationHandler(ELFLinkingContext &context)
- : TargetRelocationHandler(context) {}
-
std::error_code applyRelocation(ELFWriter &, llvm::FileOutputBuffer &,
const lld::AtomLayout &,
const Reference &) const override;
Modified: lld/trunk/lib/ReaderWriter/ELF/SectionChunks.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/SectionChunks.h?rev=226557&r1=226556&r2=226557&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/SectionChunks.h (original)
+++ lld/trunk/lib/ReaderWriter/ELF/SectionChunks.h Tue Jan 20 04:37:40 2015
@@ -28,6 +28,7 @@
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/FileOutputBuffer.h"
#include <memory>
+#include <mutex>
namespace lld {
namespace elf {
@@ -269,6 +270,31 @@ protected:
int32_t _contentPermissions;
bool _isLoadedInMemory;
std::vector<lld::AtomLayout *> _atoms;
+ mutable std::mutex _outputMutex;
+
+ void printError(const std::string &errorStr, const AtomLayout &atom,
+ const Reference &ref) const {
+ StringRef kindValStr;
+ if (!this->_context.registry().referenceKindToString(ref.kindNamespace(),
+ ref.kindArch(),
+ ref.kindValue(),
+ kindValStr)) {
+ kindValStr = "unknown";
+ }
+
+ std::string errStr = (Twine(errorStr) + " in file " +
+ atom._atom->file().path() +
+ ": reference from " + atom._atom->name() +
+ "+" + Twine(ref.offsetInAtom()) +
+ " to " + ref.target()->name() +
+ "+" + Twine(ref.addend()) +
+ " of type " + Twine(ref.kindValue()) +
+ " (" + kindValStr + ")\n").str();
+
+ // Take the lock to prevent output getting interleaved between threads
+ std::lock_guard<std::mutex> lock(_outputMutex);
+ llvm::errs() << errStr;
+ }
};
/// Align the offset to the required modulus defined by the atom alignment
@@ -377,6 +403,7 @@ template <class ELFT>
void AtomSection<ELFT>::write(ELFWriter *writer, TargetLayout<ELFT> &layout,
llvm::FileOutputBuffer &buffer) {
uint8_t *chunkBuffer = buffer.getBufferStart();
+ bool success = true;
parallel_for_each(_atoms.begin(), _atoms.end(), [&](lld::AtomLayout * ai) {
DEBUG_WITH_TYPE("Section",
llvm::dbgs() << "Writing atom: " << ai->_atom->name()
@@ -393,9 +420,16 @@ void AtomSection<ELFT>::write(ELFWriter
std::memcpy(atomContent, content.data(), contentSize);
const TargetRelocationHandler &relHandler =
this->_context.template getTargetHandler<ELFT>().getRelocationHandler();
- for (const auto ref : *definedAtom)
- relHandler.applyRelocation(*writer, buffer, *ai, *ref);
+ for (const auto ref : *definedAtom) {
+ if (std::error_code ec = relHandler.applyRelocation(*writer, buffer,
+ *ai, *ref)) {
+ printError(ec.message(), *ai, *ref);
+ success = false;
+ }
+ }
});
+ if (!success)
+ llvm::report_fatal_error("relocating output");
}
/// \brief A OutputSection represents a set of sections grouped by the same
Modified: lld/trunk/lib/ReaderWriter/ELF/TargetHandler.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/TargetHandler.h?rev=226557&r1=226556&r2=226557&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/TargetHandler.h (original)
+++ lld/trunk/lib/ReaderWriter/ELF/TargetHandler.h Tue Jan 20 04:37:40 2015
@@ -43,32 +43,12 @@ template <class ELFT> class TargetLayout
class TargetRelocationHandler {
public:
/// Constructor
- TargetRelocationHandler(ELFLinkingContext &targetInfo) : _ctx(targetInfo) {}
+ TargetRelocationHandler() {}
virtual ~TargetRelocationHandler() {}
virtual std::error_code applyRelocation(ELFWriter &, llvm::FileOutputBuffer &,
const lld::AtomLayout &,
const Reference &) const = 0;
-
-protected:
- void unhandledReferenceType(const Atom &atom, const Reference &ref) const {
- llvm::errs() << "Unhandled reference type in file " << atom.file().path()
- << ": reference from " << atom.name() << "+"
- << ref.offsetInAtom() << " to " << ref.target()->name() << "+"
- << ref.addend() << " of type ";
-
- StringRef kindValStr;
- if (!_ctx.registry().referenceKindToString(
- ref.kindNamespace(), ref.kindArch(), ref.kindValue(), kindValStr)) {
- kindValStr = "unknown";
- }
-
- llvm::errs() << ref.kindValue() << " (" << kindValStr << ")\n";
- llvm::report_fatal_error("unhandled reference type");
- }
-
-private:
- ELFLinkingContext &_ctx;
};
/// \brief TargetHandler contains all the information responsible to handle a
@@ -91,6 +71,15 @@ public:
/// How does the target deal with writing ELF output.
virtual std::unique_ptr<Writer> getWriter() = 0;
};
+
+inline std::error_code make_unhandled_reloc_error() {
+ return make_dynamic_error_code(Twine("Unhandled reference type"));
+}
+
+inline std::error_code make_out_of_range_reloc_error() {
+ return make_dynamic_error_code(Twine("Relocation out of range"));
+}
+
} // end namespace elf
} // end namespace lld
Modified: lld/trunk/lib/ReaderWriter/ELF/X86/X86RelocationHandler.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/X86/X86RelocationHandler.cpp?rev=226557&r1=226556&r2=226557&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/X86/X86RelocationHandler.cpp (original)
+++ lld/trunk/lib/ReaderWriter/ELF/X86/X86RelocationHandler.cpp Tue Jan 20 04:37:40 2015
@@ -52,7 +52,7 @@ std::error_code X86TargetRelocationHandl
relocPC32(location, relocVAddress, targetVAddress, ref.addend());
break;
default:
- unhandledReferenceType(*atom._atom, ref);
+ return make_unhandled_reloc_error();
}
return std::error_code();
Modified: lld/trunk/lib/ReaderWriter/ELF/X86/X86RelocationHandler.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/X86/X86RelocationHandler.h?rev=226557&r1=226556&r2=226557&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/X86/X86RelocationHandler.h (original)
+++ lld/trunk/lib/ReaderWriter/ELF/X86/X86RelocationHandler.h Tue Jan 20 04:37:40 2015
@@ -18,9 +18,6 @@ typedef llvm::object::ELFType<llvm::supp
class X86TargetRelocationHandler final : public TargetRelocationHandler {
public:
- X86TargetRelocationHandler(ELFLinkingContext &targetInfo)
- : TargetRelocationHandler(targetInfo) {}
-
std::error_code applyRelocation(ELFWriter &, llvm::FileOutputBuffer &,
const lld::AtomLayout &,
const Reference &) const override;
Modified: lld/trunk/lib/ReaderWriter/ELF/X86/X86TargetHandler.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/X86/X86TargetHandler.cpp?rev=226557&r1=226556&r2=226557&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/X86/X86TargetHandler.cpp (original)
+++ lld/trunk/lib/ReaderWriter/ELF/X86/X86TargetHandler.cpp Tue Jan 20 04:37:40 2015
@@ -50,4 +50,4 @@ void X86TargetHandler::registerRelocatio
X86TargetHandler::X86TargetHandler(X86LinkingContext &context)
: _x86LinkingContext(context),
_x86TargetLayout(new X86TargetLayout<X86ELFType>(context)),
- _x86RelocationHandler(new X86TargetRelocationHandler(context)) {}
+ _x86RelocationHandler(new X86TargetRelocationHandler()) {}
Modified: lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64RelocationHandler.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64RelocationHandler.cpp?rev=226557&r1=226556&r2=226557&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64RelocationHandler.cpp (original)
+++ lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64RelocationHandler.cpp Tue Jan 20 04:37:40 2015
@@ -123,7 +123,7 @@ std::error_code X86_64TargetRelocationHa
case R_X86_64_DTPOFF64:
break;
default:
- unhandledReferenceType(*atom._atom, ref);
+ return make_unhandled_reloc_error();
}
return std::error_code();
Modified: lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64RelocationHandler.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64RelocationHandler.h?rev=226557&r1=226556&r2=226557&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64RelocationHandler.h (original)
+++ lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64RelocationHandler.h Tue Jan 20 04:37:40 2015
@@ -20,10 +20,8 @@ template <class ELFT> class X86_64Target
class X86_64TargetRelocationHandler final : public TargetRelocationHandler {
public:
- X86_64TargetRelocationHandler(X86_64TargetLayout<X86_64ELFType> &layout,
- ELFLinkingContext &targetInfo)
- : TargetRelocationHandler(targetInfo), _tlsSize(0),
- _x86_64Layout(layout) {}
+ X86_64TargetRelocationHandler(X86_64TargetLayout<X86_64ELFType> &layout)
+ : _tlsSize(0), _x86_64Layout(layout) {}
std::error_code applyRelocation(ELFWriter &, llvm::FileOutputBuffer &,
const lld::AtomLayout &,
Modified: lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64TargetHandler.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64TargetHandler.cpp?rev=226557&r1=226556&r2=226557&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64TargetHandler.cpp (original)
+++ lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64TargetHandler.cpp Tue Jan 20 04:37:40 2015
@@ -20,7 +20,7 @@ X86_64TargetHandler::X86_64TargetHandler
: _context(context),
_x86_64TargetLayout(new X86_64TargetLayout<X86_64ELFType>(context)),
_x86_64RelocationHandler(new X86_64TargetRelocationHandler(
- *_x86_64TargetLayout.get(), context)) {}
+ *_x86_64TargetLayout.get())) {}
void X86_64TargetHandler::registerRelocationNames(Registry ®istry) {
registry.addKindTable(Reference::KindNamespace::ELF,
More information about the llvm-commits
mailing list