summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShankar Easwaran <shankare@codeaurora.org>2013-04-29 04:10:42 +0000
committerShankar Easwaran <shankare@codeaurora.org>2013-04-29 04:10:42 +0000
commitcc06891c42da0612557871f1ed75a7b4631ba2b9 (patch)
treedb6cc5a7572e7f60355ed593790820fed2acacec
parentd846d9852e4fd63215ee3c24e048aba5bc0a87ab (diff)
downloadbcm5719-llvm-cc06891c42da0612557871f1ed75a7b4631ba2b9.tar.gz
bcm5719-llvm-cc06891c42da0612557871f1ed75a7b4631ba2b9.zip
[lld][ELF] (no testable functionality change) resize the number of entries in the string table for static linking
llvm-svn: 180692
-rw-r--r--lld/include/lld/Core/File.h4
-rw-r--r--lld/lib/ReaderWriter/Native/ReaderNative.cpp5
-rw-r--r--lld/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp7
3 files changed, 11 insertions, 5 deletions
diff --git a/lld/include/lld/Core/File.h b/lld/include/lld/Core/File.h
index 79d4f4f9014..4a90fd02fe4 100644
--- a/lld/include/lld/Core/File.h
+++ b/lld/include/lld/Core/File.h
@@ -104,6 +104,7 @@ public:
virtual atom_iterator<T> end() const = 0;
virtual const T *deref(const void *it) const = 0;
virtual void next(const void *&it) const = 0;
+ virtual uint64_t size() const = 0;
};
/// \brief The class is the iterator type used to iterate through a File's
@@ -185,6 +186,8 @@ protected:
it = reinterpret_cast<const void*>(p);
}
+ virtual uint64_t size() const { return _atoms.size(); }
+
std::vector<const T *> _atoms;
};
@@ -207,6 +210,7 @@ protected:
virtual void push_back(const T *element) {
llvm_unreachable("empty collection should never be grown");
}
+ virtual uint64_t size() const { return 0; }
};
static atom_collection_empty<DefinedAtom> _noDefinedAtoms;
diff --git a/lld/lib/ReaderWriter/Native/ReaderNative.cpp b/lld/lib/ReaderWriter/Native/ReaderNative.cpp
index ac3cf3bfe41..41fc0eee7ce 100644
--- a/lld/lib/ReaderWriter/Native/ReaderNative.cpp
+++ b/lld/lib/ReaderWriter/Native/ReaderNative.cpp
@@ -758,8 +758,9 @@ private:
p += _elementSize;
it = reinterpret_cast<const void*>(p);
}
- const uint8_t* _arrayStart;
- const uint8_t* _arrayEnd;
+ virtual uint64_t size() const { return _elementCount; }
+ const uint8_t *_arrayStart;
+ const uint8_t *_arrayEnd;
uint32_t _elementSize;
uint32_t _elementCount;
};
diff --git a/lld/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp b/lld/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp
index c07bf56a345..747d1615673 100644
--- a/lld/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp
+++ b/lld/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp
@@ -241,7 +241,8 @@ public:
virtual void push_back(const T *element) {
_atoms.push_back(element);
}
- std::vector<const T*> _atoms;
+ virtual uint64_t size() const { return _atoms.size(); }
+ std::vector<const T *> _atoms;
};
/// Mapping of kind: field in yaml files.
@@ -301,11 +302,11 @@ struct ScalarTraits<RefKind> {
default:
if (auto relocStr = info->_targetInfo.stringFromRelocKind(value))
out << *relocStr;
- else
+ else
out << "<unknown>";
break;
}
- }
+ }
static StringRef input(StringRef scalar, void *ctxt, RefKind &value) {
assert(ctxt != nullptr);
OpenPOWER on IntegriCloud