diff options
Diffstat (limited to 'llvm/lib/ExecutionEngine/Orc/Layer.cpp')
| -rw-r--r-- | llvm/lib/ExecutionEngine/Orc/Layer.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/llvm/lib/ExecutionEngine/Orc/Layer.cpp b/llvm/lib/ExecutionEngine/Orc/Layer.cpp index 346dde4f7a8..1927bce45d4 100644 --- a/llvm/lib/ExecutionEngine/Orc/Layer.cpp +++ b/llvm/lib/ExecutionEngine/Orc/Layer.cpp @@ -46,17 +46,19 @@ IRMaterializationUnit::IRMaterializationUnit(ExecutionSession &ES, !G.hasAvailableExternallyLinkage()) { auto MangledName = Mangle(G.getName()); SymbolFlags[MangledName] = JITSymbolFlags::fromGlobalValue(G); - Discardable[MangledName] = &G; + SymbolToDefinition[MangledName] = &G; } } } void IRMaterializationUnit::discard(const VSO &V, SymbolStringPtr Name) { - auto I = Discardable.find(Name); - assert(I != Discardable.end() && + auto I = SymbolToDefinition.find(Name); + assert(I != SymbolToDefinition.end() && "Symbol not provided by this MU, or previously discarded"); + assert(!I->second->isDeclaration() && + "Discard should only apply to definitions"); I->second->setLinkage(GlobalValue::AvailableExternallyLinkage); - Discardable.erase(I); + SymbolToDefinition.erase(I); } BasicIRLayerMaterializationUnit::BasicIRLayerMaterializationUnit( |

