summaryrefslogtreecommitdiffstats
path: root/lld/lib/Core/Resolver.cpp
diff options
context:
space:
mode:
authorRui Ueyama <ruiu@google.com>2014-04-04 00:15:52 +0000
committerRui Ueyama <ruiu@google.com>2014-04-04 00:15:52 +0000
commit8dc9f0a3711ead756d83255433ba436cb5bbd5fd (patch)
tree2cc3754b94af7780ee4ccf4775524d075d283e3f /lld/lib/Core/Resolver.cpp
parent8bd093b1e591f636152ef0f9e6dd53f783323982 (diff)
downloadbcm5719-llvm-8dc9f0a3711ead756d83255433ba436cb5bbd5fd.tar.gz
bcm5719-llvm-8dc9f0a3711ead756d83255433ba436cb5bbd5fd.zip
Return a vector rather than mutating a given one.
This is cleaner and as efficient as before. Differential Revision: http://llvm-reviews.chandlerc.com/D3284 llvm-svn: 205590
Diffstat (limited to 'lld/lib/Core/Resolver.cpp')
-rw-r--r--lld/lib/Core/Resolver.cpp12
1 files changed, 4 insertions, 8 deletions
diff --git a/lld/lib/Core/Resolver.cpp b/lld/lib/Core/Resolver.cpp
index 1b40bd37dcc..768c05a32fc 100644
--- a/lld/lib/Core/Resolver.cpp
+++ b/lld/lib/Core/Resolver.cpp
@@ -74,19 +74,16 @@ void Resolver::forEachUndefines(UndefCallback callback,
int64_t undefineGenCount = 0;
do {
undefineGenCount = _symbolTable.size();
- std::vector<const UndefinedAtom *> undefines;
- _symbolTable.undefines(undefines);
- for (const UndefinedAtom *undefAtom : undefines) {
+ for (const UndefinedAtom *undefAtom : _symbolTable.undefines()) {
StringRef undefName = undefAtom->name();
// load for previous undefine may also have loaded this undefine
if (!_symbolTable.isDefined(undefName))
callback(undefName, false);
}
+
// search libraries for overrides of common symbols
if (searchForOverrides) {
- std::vector<StringRef> tentDefNames;
- _symbolTable.tentativeDefinitions(tentDefNames);
- for (StringRef tentDefName : tentDefNames) {
+ for (StringRef tentDefName : _symbolTable.tentativeDefinitions()) {
// Load for previous tentative may also have loaded
// something that overrode this tentative, so always check.
const Atom *curAtom = _symbolTable.findByName(tentDefName);
@@ -359,8 +356,7 @@ void Resolver::deadStripOptimize() {
// error out if some undefines remain
bool Resolver::checkUndefines() {
// build vector of remaining undefined symbols
- std::vector<const UndefinedAtom *> undefinedAtoms;
- _symbolTable.undefines(undefinedAtoms);
+ std::vector<const UndefinedAtom *> undefinedAtoms = _symbolTable.undefines();
if (_context.deadStrip()) {
// When dead code stripping, we don't care if dead atoms are undefined.
undefinedAtoms.erase(
OpenPOWER on IntegriCloud