diff --git a/llvm/lib/Object/ArchiveWriter.cpp b/llvm/lib/Object/ArchiveWriter.cpp index 114045561366d..c61ba868efe60 100644 --- a/llvm/lib/Object/ArchiveWriter.cpp +++ b/llvm/lib/Object/ArchiveWriter.cpp @@ -754,9 +754,8 @@ static Expected> getSymbols(SymbolicFile *Obj, raw_string_ostream NameStream(Name); if (Error E = S.printName(NameStream)) return std::move(E); - if (Map->find(Name) != Map->end()) + if (!Map->try_emplace(Name, Index).second) continue; // ignore duplicated symbol - (*Map)[Name] = Index; if (Map == &SymMap->Map) { Ret.push_back(SymNames.tell()); SymNames << Name << '\0';