================ @@ -2546,14 +2546,27 @@ static void flushDiagnostics(Sema &S, const sema::FunctionScopeInfo *fscope) { class CallableVisitor : public DynamicRecursiveASTVisitor { private: llvm::function_ref<void(const Decl *)> Callback; + const Module *const TUModule; public: - CallableVisitor(llvm::function_ref<void(const Decl *)> Callback) - : Callback(Callback) { + CallableVisitor(llvm::function_ref<void(const Decl *)> Callback, + const Module *const TUModule) + : Callback(Callback), TUModule(TUModule) { ShouldVisitTemplateInstantiations = true; ShouldVisitImplicitCode = false; } + bool TraverseDecl(Decl *Node) override { + // For performance reasons, only validate the current translation unit's + // module, and not modules it depends on. + // See https://issues.chromium.org/issues/351909443 for details. + if (Node && Node->getOwningModule() == TUModule) { + return DynamicRecursiveASTVisitor::TraverseDecl(Node); + } else { ---------------- atetubou wrote:
nit: you can remove this else to reduce the nest. ```suggestion } ``` ref: https://testing.googleblog.com/2017/06/code-health-reduce-nesting-reduce.html https://github.com/llvm/llvm-project/pull/127161 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits