================ @@ -34,13 +43,26 @@ template <typename T> bool MapASTVisitor::mapDecl(const T *D) { // If there is an error generating a USR for the decl, skip this decl. if (index::generateUSRForDecl(D, USR)) return true; + + // Prevent Visiting USR twice + { + std::lock_guard<llvm::sys::Mutex> Guard(USRVisitedGuard); + std::string Visited = USR.str().str(); + if (USRVisited.count(Visited)) + return true; + // We considered a USR to be visited only when its defined + if (IsDefinition) + USRVisited.insert(Visited); + } + bool IsFileInRootDir; llvm::SmallString<128> File = getFile(D, D->getASTContext(), CDCtx.SourceRoot, IsFileInRootDir); auto I = serialize::emitInfo(D, getComment(D, D->getASTContext()), getLine(D, D->getASTContext()), File, IsFileInRootDir, CDCtx.PublicOnly); + ---------------- ilovepi wrote:
nit: newline https://github.com/llvm/llvm-project/pull/96809 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits