Skip to content

Commit 1286401

Browse files
author
git apple-llvm automerger
committed
Merge commit '31e033176339' from llvm.org/master into apple/master
2 parents 770ab60 + 31e0331 commit 1286401

File tree

2 files changed

+19
-0
lines changed

2 files changed

+19
-0
lines changed

llvm/lib/ExecutionEngine/Orc/Mangling.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,13 @@ getObjectSymbolInfo(ExecutionSession &ES, MemoryBufferRef ObjBuffer) {
9999
if (!(Sym.getFlags() & object::BasicSymbolRef::SF_Global))
100100
continue;
101101

102+
// Skip symbols that have type SF_File.
103+
if (auto SymType = Sym.getType()) {
104+
if (*SymType == object::SymbolRef::ST_File)
105+
continue;
106+
} else
107+
return SymType.takeError();
108+
102109
auto Name = Sym.getName();
103110
if (!Name)
104111
return Name.takeError();

llvm/lib/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,18 @@ void RTDyldObjectLinkingLayer::emit(MaterializationResponsibility R,
116116
auto InternalSymbols = std::make_shared<std::set<StringRef>>();
117117
{
118118
for (auto &Sym : (*Obj)->symbols()) {
119+
120+
// Skip file symbols.
121+
if (auto SymType = Sym.getType()) {
122+
if (*SymType == object::SymbolRef::ST_File)
123+
continue;
124+
} else {
125+
ES.reportError(SymType.takeError());
126+
R.failMaterialization();
127+
return;
128+
}
129+
130+
// Don't include symbols that aren't global.
119131
if (!(Sym.getFlags() & object::BasicSymbolRef::SF_Global)) {
120132
if (auto SymName = Sym.getName())
121133
InternalSymbols->insert(*SymName);

0 commit comments

Comments
 (0)