summaryrefslogtreecommitdiffstats
path: root/lld/lib/ReaderWriter/FileArchive.cpp
diff options
context:
space:
mode:
authorRui Ueyama <ruiu@google.com>2016-03-28 20:59:47 +0000
committerRui Ueyama <ruiu@google.com>2016-03-28 20:59:47 +0000
commit46a8e2958799dd63da3ba664abafdb2641d28a49 (patch)
tree8314a901bcd6f61c74e259293c4a086c44b5f5b7 /lld/lib/ReaderWriter/FileArchive.cpp
parentd1268bd8db14f4e029b4f412b867641318596ada (diff)
downloadbcm5719-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.cpp45
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 '"
OpenPOWER on IntegriCloud