diff options
Diffstat (limited to 'llvm/lib/ExecutionEngine/Orc/Layer.cpp')
-rw-r--r-- | llvm/lib/ExecutionEngine/Orc/Layer.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/llvm/lib/ExecutionEngine/Orc/Layer.cpp b/llvm/lib/ExecutionEngine/Orc/Layer.cpp index 46b9e5738f6..8ba88b249ea 100644 --- a/llvm/lib/ExecutionEngine/Orc/Layer.cpp +++ b/llvm/lib/ExecutionEngine/Orc/Layer.cpp @@ -116,8 +116,10 @@ Expected<SymbolFlagsMap> getObjectSymbolFlags(ExecutionSession &ES, for (auto &Sym : (*Obj)->symbols()) { if (!(Sym.getFlags() & object::BasicSymbolRef::SF_Undefined) && (Sym.getFlags() & object::BasicSymbolRef::SF_Exported)) { - auto InternedName = - ES.getSymbolStringPool().intern(cantFail(Sym.getName())); + auto Name = Sym.getName(); + if (!Name) + return Name.takeError(); + auto InternedName = ES.getSymbolStringPool().intern(*Name); auto SymFlags = JITSymbolFlags::fromObjectSymbol(Sym); if (!SymFlags) return SymFlags.takeError(); |