diff --git a/llvm/lib/ExecutionEngine/Orc/Core.cpp b/llvm/lib/ExecutionEngine/Orc/Core.cpp index 5eb6d143479b..5ae65ab2f661 100644 --- a/llvm/lib/ExecutionEngine/Orc/Core.cpp +++ b/llvm/lib/ExecutionEngine/Orc/Core.cpp @@ -562,8 +562,9 @@ void VSO::finalize(const SymbolFlagsMap &Finalized) { // MaterializingInfo and update its materializing state. assert(DependantVSO.Symbols.count(DependantName) && "Dependant has no entry in the Symbols table"); - DependantVSO.Symbols[DependantName].getFlags() &= - JITSymbolFlags::Materializing; + auto &DependantSym = DependantVSO.Symbols[DependantName]; + DependantSym.setFlags(static_cast( + DependantSym.getFlags() & ~JITSymbolFlags::Materializing)); DependantVSO.MaterializingInfos.erase(DependantMII); } } @@ -580,7 +581,9 @@ void VSO::finalize(const SymbolFlagsMap &Finalized) { } assert(Symbols.count(Name) && "Symbol has no entry in the Symbols table"); - Symbols[Name].getFlags() &= ~JITSymbolFlags::Materializing; + auto &Sym = Symbols[Name]; + Sym.setFlags(static_cast( + Sym.getFlags() & ~JITSymbolFlags::Materializing)); MaterializingInfos.erase(MII); } }