diff --git a/lld/COFF/SymbolTable.cpp b/lld/COFF/SymbolTable.cpp index 3bd471389daa1..fa09ea64babb2 100644 --- a/lld/COFF/SymbolTable.cpp +++ b/lld/COFF/SymbolTable.cpp @@ -424,13 +424,11 @@ static void reportProblemSymbols( if (!sym) continue; if (undefs.count(sym)) { - auto it = firstDiag.find(sym); - if (it == firstDiag.end()) { - firstDiag[sym] = undefDiags.size(); + auto [it, inserted] = firstDiag.try_emplace(sym, undefDiags.size()); + if (inserted) undefDiags.push_back({sym, {{file, symIndex}}}); - } else { + else undefDiags[it->second].files.push_back({file, symIndex}); - } } if (localImports) if (Symbol *imp = localImports->lookup(sym))