diff options
author | Rui Ueyama <ruiu@google.com> | 2016-03-28 20:59:47 +0000 |
---|---|---|
committer | Rui Ueyama <ruiu@google.com> | 2016-03-28 20:59:47 +0000 |
commit | 46a8e2958799dd63da3ba664abafdb2641d28a49 (patch) | |
tree | 8314a901bcd6f61c74e259293c4a086c44b5f5b7 /lld/lib/ReaderWriter/FileArchive.cpp | |
parent | d1268bd8db14f4e029b4f412b867641318596ada (diff) | |
download | bcm5719-llvm-46a8e2958799dd63da3ba664abafdb2641d28a49.tar.gz bcm5719-llvm-46a8e2958799dd63da3ba664abafdb2641d28a49.zip |
Remove dead flags.
searchArchivesToOverrideTentativeDefinitions and
searchSharedLibrariesToOverrideTentativeDefinitions are always false.
For the dead flags, we have a fairly large amount of code which is
never be executed.
http://reviews.llvm.org/D17791
llvm-svn: 264653
Diffstat (limited to 'lld/lib/ReaderWriter/FileArchive.cpp')
-rw-r--r-- | lld/lib/ReaderWriter/FileArchive.cpp | 45 |
1 files changed, 1 insertions, 44 deletions
diff --git a/lld/lib/ReaderWriter/FileArchive.cpp b/lld/lib/ReaderWriter/FileArchive.cpp index ff24d4eccb5..9097914d143 100644 --- a/lld/lib/ReaderWriter/FileArchive.cpp +++ b/lld/lib/ReaderWriter/FileArchive.cpp @@ -42,7 +42,7 @@ public: /// \brief Check if any member of the archive contains an Atom with the /// specified name and return the File object for that member, or nullptr. - File *find(StringRef name, bool dataSymbolOnly) override { + File *find(StringRef name) override { auto member = _symbolMemberMap.find(name); if (member == _symbolMemberMap.end()) return nullptr; @@ -57,9 +57,6 @@ public: const char *memberStart = buf->data(); if (_membersInstantiated.count(memberStart)) return nullptr; - if (dataSymbolOnly && !isDataSymbol(ci, name)) - return nullptr; - _membersInstantiated.insert(memberStart); std::unique_ptr<File> result; @@ -157,46 +154,6 @@ private: return std::error_code(); } - // Parses the given memory buffer as an object file, and returns true - // code if the given symbol is a data symbol. If the symbol is not a data - // symbol or does not exist, returns false. - bool isDataSymbol(Archive::child_iterator cOrErr, StringRef symbol) const { - if (cOrErr->getError()) - return false; - Archive::child_iterator member = cOrErr->get(); - ErrorOr<llvm::MemoryBufferRef> buf = (*member)->getMemoryBufferRef(); - if (buf.getError()) - return false; - std::unique_ptr<MemoryBuffer> mb(MemoryBuffer::getMemBuffer( - buf.get().getBuffer(), buf.get().getBufferIdentifier(), false)); - - auto objOrErr(ObjectFile::createObjectFile(mb->getMemBufferRef())); - if (objOrErr.getError()) - return false; - std::unique_ptr<ObjectFile> obj = std::move(objOrErr.get()); - - for (SymbolRef sym : obj->symbols()) { - // Skip until we find the symbol. - ErrorOr<StringRef> name = sym.getName(); - if (!name) - return false; - if (*name != symbol) - continue; - uint32_t flags = sym.getFlags(); - if (flags <= SymbolRef::SF_Undefined) - continue; - - // Returns true if it's a data symbol. - ErrorOr<SymbolRef::Type> typeOrErr = sym.getType(); - if (typeOrErr.getError()) - return false; - SymbolRef::Type type = *typeOrErr; - if (type == SymbolRef::ST_Data) - return true; - } - return false; - } - std::error_code buildTableOfContents() { DEBUG_WITH_TYPE("FileArchive", llvm::dbgs() << "Table of contents for archive '" |