Răsfoiți Sursa

work around missing entries in function symbol table

Derek Morris 7 ani în urmă
părinte
comite
58efb7f61d
1 a modificat fișierele cu 3 adăugiri și 1 ștergeri
  1. 3 1
      lib/Backend/BackwardPass.cpp

+ 3 - 1
lib/Backend/BackwardPass.cpp

@@ -3227,9 +3227,11 @@ BackwardPass::ProcessBlock(BasicBlock * block)
                     loop->symClusterList->MapSet<BVSparse<JitArenaAllocator>*>(symID, [](SymID a, BVSparse<JitArenaAllocator> *symbols) {
                         symbols->Set(a);
                     }, syms);
+                    SymTable* symTable = loop->GetFunc()->m_symTable;
                     FOREACH_BITSET_IN_SPARSEBV(curSymID, syms)
                     {
-                        if (!loop->GetFunc()->m_symTable->Find(curSymID)->IsStackSym())
+                        Sym* potentialSym = symTable->Find(curSymID);
+                        if (potentialSym == nullptr || !potentialSym->IsStackSym())
                         {
                             syms->Clear(curSymID);
                         }