[lld] r223782 - ELF: Add a standard method for unknown relocation errors
Will Newton
will.newton at linaro.org
Tue Dec 9 08:29:40 PST 2014
Author: wnewton
Date: Tue Dec 9 10:29:39 2014
New Revision: 223782
URL: http://llvm.org/viewvc/llvm-project?rev=223782&view=rev
Log:
ELF: Add a standard method for unknown relocation errors
At present each TargetRelocationHandler generates a pretty similar error
string and calls llvm_unreachable() when encountering an unknown
relocation. This is not ideal for two reasons:
1. llvm_unreachable disappears in release builds but we still want to
know if we encountered a relocation we couldn't handle in release
builds.
2. Duplication is bad - there is no need to have a per-architecture error
message.
This change adds a test for AArch64 to test whether or not the error
message actually works. The other architectures have not been tested
but they compile and check-lld passes.
Modified:
lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64RelocationHandler.cpp
lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64RelocationHandler.h
lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64RelocationPass.cpp
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/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=223782&r1=223781&r2=223782&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64RelocationHandler.cpp (original)
+++ lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64RelocationHandler.cpp Tue Dec 9 10:29:39 2014
@@ -461,15 +461,8 @@ std::error_code AArch64TargetRelocationH
relocR_AARCH64_TLSLE_ADD_TPREL_LO12_NC(location, relocVAddress,
targetVAddress, ref.addend());
break;
- default: {
- std::string str;
- llvm::raw_string_ostream s(str);
- s << "Unhandled relocation: " << atom._atom->file().path() << ":"
- << atom._atom->name() << "@" << ref.offsetInAtom() << " "
- << "#" << ref.kindValue();
- s.flush();
- llvm_unreachable(str.c_str());
- }
+ default:
+ unhandledReferenceType(*atom._atom, ref);
}
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=223782&r1=223781&r2=223782&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64RelocationHandler.h (original)
+++ lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64RelocationHandler.h Tue Dec 9 10:29:39 2014
@@ -21,7 +21,7 @@ template <class ELFT> class AArch64Targe
class AArch64TargetRelocationHandler final
: public TargetRelocationHandler<AArch64ELFType> {
public:
- AArch64TargetRelocationHandler() {}
+ using TargetRelocationHandler<AArch64ELFType>::TargetRelocationHandler;
std::error_code applyRelocation(ELFWriter &, llvm::FileOutputBuffer &,
const lld::AtomLayout &,
Modified: lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64RelocationPass.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64RelocationPass.cpp?rev=223782&r1=223781&r2=223782&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64RelocationPass.cpp (original)
+++ lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64RelocationPass.cpp Tue Dec 9 10:29:39 2014
@@ -156,8 +156,6 @@ template <class Derived> class AArch64Re
case R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC:
static_cast<Derived *>(this)->handleGOT(ref);
break;
- default:
- llvm_unreachable("Unhandled type in handleReference");
}
}
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=223782&r1=223781&r2=223782&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64TargetHandler.cpp (original)
+++ lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64TargetHandler.cpp Tue Dec 9 10:29:39 2014
@@ -20,7 +20,7 @@ AArch64TargetHandler::AArch64TargetHandl
: DefaultTargetHandler(context), _context(context),
_AArch64TargetLayout(new AArch64TargetLayout<AArch64ELFType>(context)),
_AArch64RelocationHandler(
- new AArch64TargetRelocationHandler()) {}
+ new AArch64TargetRelocationHandler(context)) {}
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=223782&r1=223781&r2=223782&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonRelocationHandler.cpp (original)
+++ lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonRelocationHandler.cpp Tue Dec 9 10:29:39 2014
@@ -343,13 +343,8 @@ std::error_code HexagonTargetRelocationH
ref.addend(), _hexagonTargetLayout.getGOTSymAddr());
break;
- default : {
- std::string str;
- llvm::raw_string_ostream s(str);
- s << "Unhandled Hexagon relocation: #" << ref.kindValue();
- s.flush();
- llvm_unreachable(str.c_str());
- }
+ default:
+ unhandledReferenceType(*atom._atom, ref);
}
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=223782&r1=223781&r2=223782&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonRelocationHandler.h (original)
+++ lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonRelocationHandler.h Tue Dec 9 10:29:39 2014
@@ -21,8 +21,10 @@ class HexagonTargetHandler;
class HexagonTargetRelocationHandler final :
public TargetRelocationHandler<HexagonELFType> {
public:
- HexagonTargetRelocationHandler(HexagonTargetLayout<HexagonELFType> &layout)
- : _hexagonTargetLayout(layout) {}
+ HexagonTargetRelocationHandler(HexagonTargetLayout<HexagonELFType> &layout,
+ ELFLinkingContext &targetInfo)
+ : TargetRelocationHandler<HexagonELFType>(targetInfo),
+ _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=223782&r1=223781&r2=223782&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonTargetHandler.cpp (original)
+++ lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonTargetHandler.cpp Tue Dec 9 10:29:39 2014
@@ -22,8 +22,8 @@ HexagonTargetHandler::HexagonTargetHandl
: DefaultTargetHandler(context), _hexagonLinkingContext(context),
_hexagonRuntimeFile(new HexagonRuntimeFile<HexagonELFType>(context)),
_hexagonTargetLayout(new HexagonTargetLayout<HexagonELFType>(context)),
- _hexagonRelocationHandler(
- new HexagonTargetRelocationHandler(*_hexagonTargetLayout.get())) {}
+ _hexagonRelocationHandler(new HexagonTargetRelocationHandler(
+ *_hexagonTargetLayout.get(), context)) {}
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=223782&r1=223781&r2=223782&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/Mips/MipsRelocationHandler.cpp (original)
+++ lld/trunk/lib/ReaderWriter/ELF/Mips/MipsRelocationHandler.cpp Tue Dec 9 10:29:39 2014
@@ -179,12 +179,8 @@ std::error_code MipsTargetRelocationHand
case LLD_R_MIPS_STO_PLT:
// Do nothing.
break;
- default: {
- std::string str;
- llvm::raw_string_ostream s(str);
- s << "Unhandled Mips relocation: " << ref.kindValue();
- llvm_unreachable(s.str().c_str());
- }
+ default:
+ unhandledReferenceType(*atom._atom, ref);
}
endian::write<uint32_t, little, 2>(location, ins);
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=223782&r1=223781&r2=223782&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/Mips/MipsRelocationHandler.h (original)
+++ lld/trunk/lib/ReaderWriter/ELF/Mips/MipsRelocationHandler.h Tue Dec 9 10:29:39 2014
@@ -19,8 +19,10 @@ class MipsTargetHandler;
class MipsTargetRelocationHandler final
: public TargetRelocationHandler<Mips32ElELFType> {
public:
- MipsTargetRelocationHandler(MipsTargetLayout<Mips32ElELFType> &layout)
- : _mipsTargetLayout(layout) {}
+ MipsTargetRelocationHandler(MipsTargetLayout<Mips32ElELFType> &layout,
+ ELFLinkingContext &targetInfo)
+ : TargetRelocationHandler<Mips32ElELFType>(targetInfo),
+ _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=223782&r1=223781&r2=223782&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/Mips/MipsTargetHandler.cpp (original)
+++ lld/trunk/lib/ReaderWriter/ELF/Mips/MipsTargetHandler.cpp Tue Dec 9 10:29:39 2014
@@ -22,7 +22,7 @@ MipsTargetHandler::MipsTargetHandler(Mip
: DefaultTargetHandler(ctx), _ctx(ctx),
_runtimeFile(new MipsRuntimeFile<Mips32ElELFType>(ctx)),
_targetLayout(new MipsTargetLayout<Mips32ElELFType>(ctx)),
- _relocationHandler(new MipsTargetRelocationHandler(*_targetLayout)) {}
+ _relocationHandler(new MipsTargetRelocationHandler(*_targetLayout, ctx)) {}
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=223782&r1=223781&r2=223782&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/PPC/PPCTargetHandler.cpp (original)
+++ lld/trunk/lib/ReaderWriter/ELF/PPC/PPCTargetHandler.cpp Tue Dec 9 10:29:39 2014
@@ -51,13 +51,8 @@ std::error_code PPCTargetRelocationHandl
relocB24PCREL(location, relocVAddress, targetVAddress, ref.addend());
break;
- default : {
- std::string str;
- llvm::raw_string_ostream s(str);
- s << "Unhandled PowerPC relocation: #" << ref.kindValue();
- s.flush();
- llvm_unreachable(str.c_str());
- }
+ default:
+ unhandledReferenceType(*atom._atom, ref);
}
return std::error_code();
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=223782&r1=223781&r2=223782&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/PPC/PPCTargetHandler.h (original)
+++ lld/trunk/lib/ReaderWriter/ELF/PPC/PPCTargetHandler.h Tue Dec 9 10:29:39 2014
@@ -26,16 +26,16 @@ public:
class PPCTargetRelocationHandler final
: public TargetRelocationHandler<PPCELFType> {
public:
- PPCTargetRelocationHandler(PPCLinkingContext &context,
+ PPCTargetRelocationHandler(ELFLinkingContext &context,
PPCTargetLayout<PPCELFType> &layout)
- : _ppcContext(context), _ppcTargetLayout(layout) {}
+ : TargetRelocationHandler<PPCELFType>(context),
+ _ppcTargetLayout(layout) {}
virtual std::error_code applyRelocation(ELFWriter &, llvm::FileOutputBuffer &,
const lld::AtomLayout &,
const Reference &) const override;
protected:
- PPCLinkingContext &_ppcContext;
PPCTargetLayout<PPCELFType> &_ppcTargetLayout;
};
Modified: lld/trunk/lib/ReaderWriter/ELF/TargetHandler.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/TargetHandler.h?rev=223782&r1=223781&r2=223782&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/TargetHandler.h (original)
+++ lld/trunk/lib/ReaderWriter/ELF/TargetHandler.h Tue Dec 9 10:29:39 2014
@@ -17,11 +17,14 @@
#define LLD_READER_WRITER_ELF_TARGET_HANDLER_H
#include "Layout.h"
+#include "lld/Core/Atom.h"
#include "lld/Core/LLVM.h"
#include "lld/Core/LinkingContext.h"
#include "lld/Core/STDExtras.h"
#include "lld/ReaderWriter/ELFLinkingContext.h"
#include "llvm/ADT/Hashing.h"
+#include "llvm/ADT/StringRef.h"
+#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/FileOutputBuffer.h"
#include <memory>
#include <vector>
@@ -39,11 +42,35 @@ template <class ELFT> class TargetLayout
template <class ELFT> class TargetRelocationHandler {
public:
+ /// Constructor
+ TargetRelocationHandler(ELFLinkingContext &targetInfo)
+ : _context(targetInfo) {}
+
virtual std::error_code applyRelocation(ELFWriter &, llvm::FileOutputBuffer &,
const lld::AtomLayout &,
const Reference &) const = 0;
+ 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 (!_context.registry().referenceKindToString(ref.kindNamespace(),
+ ref.kindArch(),
+ ref.kindValue(),
+ kindValStr)) {
+ kindValStr = "unknown";
+ }
+
+ llvm::errs() << ref.kindValue() << " (" << kindValStr << ")\n";
+ llvm::report_fatal_error("unhandled reference type");
+ }
+
virtual ~TargetRelocationHandler() {}
+private:
+ ELFLinkingContext &_context;
};
/// \brief TargetHandler contains all the information responsible to handle a
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=223782&r1=223781&r2=223782&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/X86/X86RelocationHandler.cpp (original)
+++ lld/trunk/lib/ReaderWriter/ELF/X86/X86RelocationHandler.cpp Tue Dec 9 10:29:39 2014
@@ -51,13 +51,8 @@ std::error_code X86TargetRelocationHandl
case R_386_PC32:
relocPC32(location, relocVAddress, targetVAddress, ref.addend());
break;
- default: {
- std::string str;
- llvm::raw_string_ostream s(str);
- s << "Unhandled I386 relocation # " << ref.kindValue();
- s.flush();
- llvm_unreachable(str.c_str());
- }
+ default:
+ unhandledReferenceType(*atom._atom, ref);
}
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=223782&r1=223781&r2=223782&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/X86/X86RelocationHandler.h (original)
+++ lld/trunk/lib/ReaderWriter/ELF/X86/X86RelocationHandler.h Tue Dec 9 10:29:39 2014
@@ -20,7 +20,7 @@ typedef llvm::object::ELFType<llvm::supp
class X86TargetRelocationHandler final
: public TargetRelocationHandler<X86ELFType> {
public:
- X86TargetRelocationHandler(X86TargetLayout<X86ELFType> &) {}
+ using TargetRelocationHandler<X86ELFType>::TargetRelocationHandler;
std::error_code applyRelocation(ELFWriter &, llvm::FileOutputBuffer &,
const lld::AtomLayout &,
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=223782&r1=223781&r2=223782&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/X86/X86TargetHandler.cpp (original)
+++ lld/trunk/lib/ReaderWriter/ELF/X86/X86TargetHandler.cpp Tue Dec 9 10:29:39 2014
@@ -51,4 +51,4 @@ X86TargetHandler::X86TargetHandler(X86Li
: DefaultTargetHandler(context), _x86LinkingContext(context),
_x86TargetLayout(new X86TargetLayout<X86ELFType>(context)),
_x86RelocationHandler(
- new X86TargetRelocationHandler(*_x86TargetLayout.get())) {}
+ new X86TargetRelocationHandler(context)) {}
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=223782&r1=223781&r2=223782&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64RelocationHandler.cpp (original)
+++ lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64RelocationHandler.cpp Tue Dec 9 10:29:39 2014
@@ -122,15 +122,8 @@ std::error_code X86_64TargetRelocationHa
case R_X86_64_DTPMOD64:
case R_X86_64_DTPOFF64:
break;
- default: {
- std::string str;
- llvm::raw_string_ostream s(str);
- s << "Unhandled relocation: " << atom._atom->file().path() << ":"
- << atom._atom->name() << "@" << ref.offsetInAtom() << " "
- << "#" << ref.kindValue();
- s.flush();
- llvm_unreachable(str.c_str());
- }
+ default:
+ unhandledReferenceType(*atom._atom, ref);
}
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=223782&r1=223781&r2=223782&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64RelocationHandler.h (original)
+++ lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64RelocationHandler.h Tue Dec 9 10:29:39 2014
@@ -21,8 +21,10 @@ template <class ELFT> class X86_64Target
class X86_64TargetRelocationHandler final
: public TargetRelocationHandler<X86_64ELFType> {
public:
- X86_64TargetRelocationHandler(X86_64TargetLayout<X86_64ELFType> &layout)
- : _tlsSize(0), _x86_64Layout(layout) {}
+ X86_64TargetRelocationHandler(X86_64TargetLayout<X86_64ELFType> &layout,
+ ELFLinkingContext &targetInfo)
+ : TargetRelocationHandler<X86_64ELFType>(targetInfo),
+ _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=223782&r1=223781&r2=223782&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64TargetHandler.cpp (original)
+++ lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64TargetHandler.cpp Tue Dec 9 10:29:39 2014
@@ -20,7 +20,8 @@ X86_64TargetHandler::X86_64TargetHandler
: DefaultTargetHandler(context), _context(context),
_x86_64TargetLayout(new X86_64TargetLayout<X86_64ELFType>(context)),
_x86_64RelocationHandler(
- new X86_64TargetRelocationHandler(*_x86_64TargetLayout.get())) {}
+ new X86_64TargetRelocationHandler(*_x86_64TargetLayout.get(),
+ context)) {}
void X86_64TargetHandler::registerRelocationNames(Registry ®istry) {
registry.addKindTable(Reference::KindNamespace::ELF,
More information about the llvm-commits
mailing list