Skip to content

Commit 246fb49

Browse files
committed
Fix minor issue
1 parent fcbc1c5 commit 246fb49

File tree

2 files changed

+17
-23
lines changed

2 files changed

+17
-23
lines changed

llvm/lib/ExecutionEngine/Orc/EPCDynamicLibrarySearchGenerator.cpp

Lines changed: 11 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -79,32 +79,25 @@ Error EPCDynamicLibrarySearchGenerator::tryToGenerate(
7979
assert(Result->front().size() == LookupSymbols.size() &&
8080
"Result has incorrect number of elements");
8181

82-
const std::vector<ExecutorSymbolDef> &Syms = Result->front();
83-
size_t SymIdx = 0;
84-
SymbolNameSet MissingSymbols;
85-
SymbolMap NewSyms;
86-
for (auto &[Name, Flags] : LookupSymbols) {
87-
auto Sym = Syms[SymIdx++];
88-
if (Sym.getAddress())
89-
NewSyms[Name] = Sym;
90-
else if (LLVM_UNLIKELY(Flags == SymbolLookupFlags::RequiredSymbol))
91-
MissingSymbols.insert(Name);
82+
SymbolMap NewSymbols;
83+
auto ResultI = Result->front().begin();
84+
for (auto &KV : LookupSymbols) {
85+
if (ResultI->getAddress())
86+
NewSymbols[KV.first] = *ResultI;
87+
++ResultI;
9288
}
9389

9490
LLVM_DEBUG({
95-
dbgs() << "EPCDynamicLibrarySearchGenerator lookup returned " << NewSyms
96-
<< "\n";
91+
dbgs() << "EPCDynamicLibrarySearchGenerator lookup returned "
92+
<< NewSymbols << "\n";
9793
});
9894

99-
if (NewSyms.empty())
95+
// If there were no resolved symbols bail out.
96+
if (NewSymbols.empty())
10097
return LS.continueLookup(Error::success());
10198

102-
if (LLVM_UNLIKELY(!MissingSymbols.empty()))
103-
return LS.continueLookup(make_error<SymbolsNotFound>(
104-
this->EPC.getSymbolStringPool(), std::move(MissingSymbols)));
105-
10699
// Define resolved symbols.
107-
Error Err = addAbsolutes(JD, std::move(NewSyms));
100+
Error Err = addAbsolutes(JD, std::move(NewSymbols));
108101

109102
LS.continueLookup(std::move(Err));
110103
});

llvm/lib/ExecutionEngine/Orc/TargetProcess/ExecutorResolver.cpp

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,12 @@ void DylibSymbolResolver::resolveAsync(
3333

3434
void *Addr = DL.getAddressOfSymbol(DemangledSymName);
3535
if (!Addr && E.Required)
36-
Result.emplace_back();
37-
else
38-
// FIXME: determine accurate JITSymbolFlags.
39-
Result.push_back(
40-
{ExecutorAddr::fromPtr(Addr), JITSymbolFlags::Exported});
36+
OnResolve(make_error<StringError>(Twine("Missing definition for ") +
37+
DemangledSymName,
38+
inconvertibleErrorCode()));
39+
40+
// FIXME: determine accurate JITSymbolFlags.
41+
Result.push_back({ExecutorAddr::fromPtr(Addr), JITSymbolFlags::Exported});
4142
}
4243
}
4344

0 commit comments

Comments
 (0)