summaryrefslogtreecommitdiffstats
path: root/lld/lib/ReaderWriter/ELF
diff options
context:
space:
mode:
authorPete Cooper <peter_cooper@apple.com>2016-01-14 22:55:38 +0000
committerPete Cooper <peter_cooper@apple.com>2016-01-14 22:55:38 +0000
commitf0c0f3c4777399f990c9495c8779ce9b20d84ab2 (patch)
tree5d6c8904f187f4bbff22c5e92ba61462066f45f1 /lld/lib/ReaderWriter/ELF
parentaa1f270151d6c4f4089960ead052830aa3572e2d (diff)
downloadbcm5719-llvm-f0c0f3c4777399f990c9495c8779ce9b20d84ab2.tar.gz
bcm5719-llvm-f0c0f3c4777399f990c9495c8779ce9b20d84ab2.zip
Add File::kind's for all subclasses of File.
This is to enable isa<> support for any files which need it. It will be used in an upcoming patch to differentiate MachOFile from other implicitly generated files. Reviewed by Lang Hames. Differential Revision: http://reviews.llvm.org/D16103 llvm-svn: 257830
Diffstat (limited to 'lld/lib/ReaderWriter/ELF')
-rw-r--r--lld/lib/ReaderWriter/ELF/AArch64/AArch64DynamicLibraryWriter.h2
-rw-r--r--lld/lib/ReaderWriter/ELF/AArch64/AArch64ExecutableWriter.cpp2
-rw-r--r--lld/lib/ReaderWriter/ELF/AArch64/AArch64RelocationPass.cpp3
-rw-r--r--lld/lib/ReaderWriter/ELF/ARM/ARMRelocationPass.cpp3
-rw-r--r--lld/lib/ReaderWriter/ELF/ELFFile.cpp7
-rw-r--r--lld/lib/ReaderWriter/ELF/ELFLinkingContext.cpp4
-rw-r--r--lld/lib/ReaderWriter/ELF/Hexagon/HexagonTargetHandler.cpp3
-rw-r--r--lld/lib/ReaderWriter/ELF/Mips/MipsRelocationPass.cpp2
-rw-r--r--lld/lib/ReaderWriter/ELF/X86/X86DynamicLibraryWriter.h2
-rw-r--r--lld/lib/ReaderWriter/ELF/X86_64/X86_64DynamicLibraryWriter.h2
-rw-r--r--lld/lib/ReaderWriter/ELF/X86_64/X86_64ExecutableWriter.h3
-rw-r--r--lld/lib/ReaderWriter/ELF/X86_64/X86_64RelocationPass.cpp3
12 files changed, 21 insertions, 15 deletions
diff --git a/lld/lib/ReaderWriter/ELF/AArch64/AArch64DynamicLibraryWriter.h b/lld/lib/ReaderWriter/ELF/AArch64/AArch64DynamicLibraryWriter.h
index 73864d2b4c3..b53ae58d7e6 100644
--- a/lld/lib/ReaderWriter/ELF/AArch64/AArch64DynamicLibraryWriter.h
+++ b/lld/lib/ReaderWriter/ELF/AArch64/AArch64DynamicLibraryWriter.h
@@ -33,7 +33,7 @@ AArch64DynamicLibraryWriter::AArch64DynamicLibraryWriter(
void AArch64DynamicLibraryWriter::createImplicitFiles(
std::vector<std::unique_ptr<File>> &result) {
DynamicLibraryWriter::createImplicitFiles(result);
- auto gotFile = llvm::make_unique<SimpleFile>("GOTFile");
+ auto gotFile = llvm::make_unique<SimpleFile>("GOTFile", File::kindELFObject);
gotFile->addAtom(*new (gotFile->allocator()) GlobalOffsetTableAtom(*gotFile));
gotFile->addAtom(*new (gotFile->allocator()) DynamicAtom(*gotFile));
result.push_back(std::move(gotFile));
diff --git a/lld/lib/ReaderWriter/ELF/AArch64/AArch64ExecutableWriter.cpp b/lld/lib/ReaderWriter/ELF/AArch64/AArch64ExecutableWriter.cpp
index 9a9ec6cba12..66d4fd87e52 100644
--- a/lld/lib/ReaderWriter/ELF/AArch64/AArch64ExecutableWriter.cpp
+++ b/lld/lib/ReaderWriter/ELF/AArch64/AArch64ExecutableWriter.cpp
@@ -22,7 +22,7 @@ AArch64ExecutableWriter::AArch64ExecutableWriter(AArch64LinkingContext &ctx,
void AArch64ExecutableWriter::createImplicitFiles(
std::vector<std::unique_ptr<File>> &result) {
ExecutableWriter::createImplicitFiles(result);
- auto gotFile = llvm::make_unique<SimpleFile>("GOTFile");
+ auto gotFile = llvm::make_unique<SimpleFile>("GOTFile", File::kindELFObject);
gotFile->addAtom(*new (gotFile->allocator()) GlobalOffsetTableAtom(*gotFile));
if (this->_ctx.isDynamic())
gotFile->addAtom(*new (gotFile->allocator()) DynamicAtom(*gotFile));
diff --git a/lld/lib/ReaderWriter/ELF/AArch64/AArch64RelocationPass.cpp b/lld/lib/ReaderWriter/ELF/AArch64/AArch64RelocationPass.cpp
index 4d94a793665..da763e42d2c 100644
--- a/lld/lib/ReaderWriter/ELF/AArch64/AArch64RelocationPass.cpp
+++ b/lld/lib/ReaderWriter/ELF/AArch64/AArch64RelocationPass.cpp
@@ -129,7 +129,8 @@ public:
class ELFPassFile : public SimpleFile {
public:
- ELFPassFile(const ELFLinkingContext &eti) : SimpleFile("ELFPassFile") {
+ ELFPassFile(const ELFLinkingContext &eti)
+ : SimpleFile("ELFPassFile", kindELFObject) {
setOrdinal(eti.getNextOrdinalAndIncrement());
}
diff --git a/lld/lib/ReaderWriter/ELF/ARM/ARMRelocationPass.cpp b/lld/lib/ReaderWriter/ELF/ARM/ARMRelocationPass.cpp
index fc2ae75cd7a..a47f0771c91 100644
--- a/lld/lib/ReaderWriter/ELF/ARM/ARMRelocationPass.cpp
+++ b/lld/lib/ReaderWriter/ELF/ARM/ARMRelocationPass.cpp
@@ -314,7 +314,8 @@ public:
class ELFPassFile : public SimpleFile {
public:
- ELFPassFile(const ELFLinkingContext &eti) : SimpleFile("ELFPassFile") {
+ ELFPassFile(const ELFLinkingContext &eti)
+ : SimpleFile("ELFPassFile", kindELFObject) {
setOrdinal(eti.getNextOrdinalAndIncrement());
}
diff --git a/lld/lib/ReaderWriter/ELF/ELFFile.cpp b/lld/lib/ReaderWriter/ELF/ELFFile.cpp
index 1488f1862b8..0f83df2e165 100644
--- a/lld/lib/ReaderWriter/ELF/ELFFile.cpp
+++ b/lld/lib/ReaderWriter/ELF/ELFFile.cpp
@@ -16,14 +16,15 @@ namespace elf {
template <typename ELFT>
ELFFile<ELFT>::ELFFile(StringRef name, ELFLinkingContext &ctx)
- : SimpleFile(name), _ordinal(0), _doStringsMerge(ctx.mergeCommonStrings()),
- _useWrap(false), _ctx(ctx) {
+ : SimpleFile(name, kindELFObject), _ordinal(0),
+ _doStringsMerge(ctx.mergeCommonStrings()), _useWrap(false), _ctx(ctx) {
setLastError(std::error_code());
}
template <typename ELFT>
ELFFile<ELFT>::ELFFile(std::unique_ptr<MemoryBuffer> mb, ELFLinkingContext &ctx)
- : SimpleFile(mb->getBufferIdentifier()), _mb(std::move(mb)), _ordinal(0),
+ : SimpleFile(mb->getBufferIdentifier(), kindELFObject),
+ _mb(std::move(mb)), _ordinal(0),
_doStringsMerge(ctx.mergeCommonStrings()),
_useWrap(ctx.wrapCalls().size()), _ctx(ctx) {}
diff --git a/lld/lib/ReaderWriter/ELF/ELFLinkingContext.cpp b/lld/lib/ReaderWriter/ELF/ELFLinkingContext.cpp
index 70d6d618207..a035ef68e8d 100644
--- a/lld/lib/ReaderWriter/ELF/ELFLinkingContext.cpp
+++ b/lld/lib/ReaderWriter/ELF/ELFLinkingContext.cpp
@@ -170,7 +170,7 @@ ErrorOr<StringRef> ELFLinkingContext::searchFile(StringRef fileName,
void ELFLinkingContext::createInternalFiles(
std::vector<std::unique_ptr<File>> &files) const {
std::unique_ptr<SimpleFile> file(
- new SimpleFile("<internal file for --defsym>"));
+ new SimpleFile("<internal file for --defsym>", File::kindELFObject));
for (auto &i : getAbsoluteSymbols()) {
StringRef sym = i.first;
uint64_t val = i.second;
@@ -191,7 +191,7 @@ std::unique_ptr<File> ELFLinkingContext::createUndefinedSymbolFile() const {
if (_initialUndefinedSymbols.empty())
return nullptr;
std::unique_ptr<SimpleFile> undefinedSymFile(
- new SimpleFile("command line option -u"));
+ new SimpleFile("command line option -u", File::kindELFObject));
for (auto undefSymStr : _initialUndefinedSymbols)
undefinedSymFile->addAtom(*(new (_allocator) CommandLineUndefinedAtom(
*undefinedSymFile, undefSymStr)));
diff --git a/lld/lib/ReaderWriter/ELF/Hexagon/HexagonTargetHandler.cpp b/lld/lib/ReaderWriter/ELF/Hexagon/HexagonTargetHandler.cpp
index 6c0360c310f..d9da9a20016 100644
--- a/lld/lib/ReaderWriter/ELF/Hexagon/HexagonTargetHandler.cpp
+++ b/lld/lib/ReaderWriter/ELF/Hexagon/HexagonTargetHandler.cpp
@@ -117,7 +117,8 @@ public:
class ELFPassFile : public SimpleFile {
public:
- ELFPassFile(const ELFLinkingContext &eti) : SimpleFile("ELFPassFile") {
+ ELFPassFile(const ELFLinkingContext &eti)
+ : SimpleFile("ELFPassFile", kindELFObject) {
setOrdinal(eti.getNextOrdinalAndIncrement());
}
diff --git a/lld/lib/ReaderWriter/ELF/Mips/MipsRelocationPass.cpp b/lld/lib/ReaderWriter/ELF/Mips/MipsRelocationPass.cpp
index b47c7d2210d..45f6467c95c 100644
--- a/lld/lib/ReaderWriter/ELF/Mips/MipsRelocationPass.cpp
+++ b/lld/lib/ReaderWriter/ELF/Mips/MipsRelocationPass.cpp
@@ -492,7 +492,7 @@ public:
class RelocationPassFile : public SimpleFile {
public:
RelocationPassFile(const ELFLinkingContext &ctx)
- : SimpleFile("RelocationPassFile") {
+ : SimpleFile("RelocationPassFile", kindELFObject) {
setOrdinal(ctx.getNextOrdinalAndIncrement());
}
diff --git a/lld/lib/ReaderWriter/ELF/X86/X86DynamicLibraryWriter.h b/lld/lib/ReaderWriter/ELF/X86/X86DynamicLibraryWriter.h
index dd2184d7201..e37460558a4 100644
--- a/lld/lib/ReaderWriter/ELF/X86/X86DynamicLibraryWriter.h
+++ b/lld/lib/ReaderWriter/ELF/X86/X86DynamicLibraryWriter.h
@@ -32,7 +32,7 @@ X86DynamicLibraryWriter::X86DynamicLibraryWriter(X86LinkingContext &ctx,
void X86DynamicLibraryWriter::createImplicitFiles(
std::vector<std::unique_ptr<File>> &result) {
DynamicLibraryWriter::createImplicitFiles(result);
- auto gotFile = llvm::make_unique<SimpleFile>("GOTFile");
+ auto gotFile = llvm::make_unique<SimpleFile>("GOTFile", File::kindELFObject);
gotFile->addAtom(*new (gotFile->allocator()) GlobalOffsetTableAtom(*gotFile));
gotFile->addAtom(*new (gotFile->allocator()) DynamicAtom(*gotFile));
result.push_back(std::move(gotFile));
diff --git a/lld/lib/ReaderWriter/ELF/X86_64/X86_64DynamicLibraryWriter.h b/lld/lib/ReaderWriter/ELF/X86_64/X86_64DynamicLibraryWriter.h
index f84f85223bf..fb840a282cb 100644
--- a/lld/lib/ReaderWriter/ELF/X86_64/X86_64DynamicLibraryWriter.h
+++ b/lld/lib/ReaderWriter/ELF/X86_64/X86_64DynamicLibraryWriter.h
@@ -33,7 +33,7 @@ X86_64DynamicLibraryWriter::X86_64DynamicLibraryWriter(
void X86_64DynamicLibraryWriter::createImplicitFiles(
std::vector<std::unique_ptr<File>> &result) {
DynamicLibraryWriter::createImplicitFiles(result);
- auto gotFile = llvm::make_unique<SimpleFile>("GOTFile");
+ auto gotFile = llvm::make_unique<SimpleFile>("GOTFile", File::kindELFObject);
gotFile->addAtom(*new (gotFile->allocator()) GlobalOffsetTableAtom(*gotFile));
gotFile->addAtom(*new (gotFile->allocator()) DynamicAtom(*gotFile));
result.push_back(std::move(gotFile));
diff --git a/lld/lib/ReaderWriter/ELF/X86_64/X86_64ExecutableWriter.h b/lld/lib/ReaderWriter/ELF/X86_64/X86_64ExecutableWriter.h
index 930a2de2a9e..41a1b55daa4 100644
--- a/lld/lib/ReaderWriter/ELF/X86_64/X86_64ExecutableWriter.h
+++ b/lld/lib/ReaderWriter/ELF/X86_64/X86_64ExecutableWriter.h
@@ -25,7 +25,8 @@ protected:
void
createImplicitFiles(std::vector<std::unique_ptr<File>> &result) override {
ExecutableWriter::createImplicitFiles(result);
- auto gotFile = llvm::make_unique<SimpleFile>("GOTFile");
+ auto gotFile = llvm::make_unique<SimpleFile>("GOTFile",
+ File::kindELFObject);
gotFile->addAtom(*new (gotFile->allocator())
GlobalOffsetTableAtom(*gotFile));
if (this->_ctx.isDynamic())
diff --git a/lld/lib/ReaderWriter/ELF/X86_64/X86_64RelocationPass.cpp b/lld/lib/ReaderWriter/ELF/X86_64/X86_64RelocationPass.cpp
index a2f10dc08a4..0d1f23c0b6c 100644
--- a/lld/lib/ReaderWriter/ELF/X86_64/X86_64RelocationPass.cpp
+++ b/lld/lib/ReaderWriter/ELF/X86_64/X86_64RelocationPass.cpp
@@ -93,7 +93,8 @@ public:
class ELFPassFile : public SimpleFile {
public:
- ELFPassFile(const ELFLinkingContext &eti) : SimpleFile("ELFPassFile") {
+ ELFPassFile(const ELFLinkingContext &eti)
+ : SimpleFile("ELFPassFile", kindELFObject) {
setOrdinal(eti.getNextOrdinalAndIncrement());
}
OpenPOWER on IntegriCloud