diff options
| author | Pete Cooper <peter_cooper@apple.com> | 2016-01-14 22:55:38 +0000 |
|---|---|---|
| committer | Pete Cooper <peter_cooper@apple.com> | 2016-01-14 22:55:38 +0000 |
| commit | f0c0f3c4777399f990c9495c8779ce9b20d84ab2 (patch) | |
| tree | 5d6c8904f187f4bbff22c5e92ba61462066f45f1 /lld/lib/ReaderWriter/ELF | |
| parent | aa1f270151d6c4f4089960ead052830aa3572e2d (diff) | |
| download | bcm5719-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')
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()); } |

