Author: Chuanqi Xu
Date: 2026-03-19T09:51:54Z
New Revision: 621d40e1827e53844e09851dc69f2ff79dc30999

URL: 
https://github.com/llvm/llvm-project/commit/621d40e1827e53844e09851dc69f2ff79dc30999
DIFF: 
https://github.com/llvm/llvm-project/commit/621d40e1827e53844e09851dc69f2ff79dc30999.diff

LOG: Revert "[clang-tidy] [Modules] Skip checking decls in clang-tidy" (#187461)

Reverts llvm/llvm-project#145630

As requested in https://github.com/llvm/llvm-project/pull/145630

Added: 
    

Modified: 
    clang-tools-extra/clang-tidy/ClangTidy.cpp
    clang-tools-extra/test/lit.cfg.py
    clang/include/clang/ASTMatchers/ASTMatchFinder.h
    clang/lib/ASTMatchers/ASTMatchFinder.cpp

Removed: 
    clang-tools-extra/test/clang-tidy/infrastructure/cxx20-modules.cppm


################################################################################
diff  --git a/clang-tools-extra/clang-tidy/ClangTidy.cpp 
b/clang-tools-extra/clang-tidy/ClangTidy.cpp
index 0e5f8fbda631a..60f4823d930c1 100644
--- a/clang-tools-extra/clang-tidy/ClangTidy.cpp
+++ b/clang-tools-extra/clang-tidy/ClangTidy.cpp
@@ -434,9 +434,6 @@ 
ClangTidyASTConsumerFactory::createASTConsumer(CompilerInstance &Compiler,
 
   ast_matchers::MatchFinder::MatchFinderOptions FinderOptions;
 
-  // We should always skip the declarations in modules.
-  FinderOptions.SkipDeclsInModules = true;
-
   std::unique_ptr<ClangTidyProfiling> Profiling;
   if (Context.getEnableProfiling()) {
     Profiling =

diff  --git 
a/clang-tools-extra/test/clang-tidy/infrastructure/cxx20-modules.cppm 
b/clang-tools-extra/test/clang-tidy/infrastructure/cxx20-modules.cppm
deleted file mode 100644
index 663df0104fd0a..0000000000000
--- a/clang-tools-extra/test/clang-tidy/infrastructure/cxx20-modules.cppm
+++ /dev/null
@@ -1,29 +0,0 @@
-// RUN: rm -fr %t
-// RUN: mkdir %t
-// RUN: split-file %s %t
-// RUN: mkdir %t/tmp
-//
-// RUN: %check_clang_tidy -std=c++20 -check-suffix=DEFAULT %t/a.cpp \
-// RUN:   cppcoreguidelines-narrowing-conversions %t/a.cpp -- \
-// RUN:   -config='{}'
-
-// RUN: clang -std=c++20 -x c++-module %t/a.cpp --precompile -o %t/a.pcm
-
-// RUN: %check_clang_tidy -std=c++20 -check-suffix=DEFAULT %t/use.cpp \
-// RUN:   cppcoreguidelines-narrowing-conversions %t/a.cpp -- \
-// RUN:   -config='{}' -- -fmodule-file=a=%t/a.pcm 
-
-//--- a.cpp
-export module a;
-export void most_narrowing_is_not_ok() {
-  int i;
-  long long ui;
-  i = ui;
-  // CHECK-MESSAGES-DEFAULT: :[[@LINE-1]]:7: warning: narrowing conversion 
from 'long long' to signed type 'int' is implementation-defined 
[cppcoreguidelines-narrowing-conversions]
-}
-
-//--- use.cpp
-import a;
-void use() {
-  most_narrowing_is_not_ok();
-}

diff  --git a/clang-tools-extra/test/lit.cfg.py 
b/clang-tools-extra/test/lit.cfg.py
index c075650ff7a73..c39ea29329674 100644
--- a/clang-tools-extra/test/lit.cfg.py
+++ b/clang-tools-extra/test/lit.cfg.py
@@ -27,7 +27,6 @@
 config.suffixes = [
     ".c",
     ".cpp",
-    ".cppm",
     ".hpp",
     ".m",
     ".mm",

diff  --git a/clang/include/clang/ASTMatchers/ASTMatchFinder.h 
b/clang/include/clang/ASTMatchers/ASTMatchFinder.h
index b0ccbf22a4269..2d36e8c4fae1c 100644
--- a/clang/include/clang/ASTMatchers/ASTMatchFinder.h
+++ b/clang/include/clang/ASTMatchers/ASTMatchFinder.h
@@ -144,8 +144,6 @@ class MatchFinder {
 
     /// Avoids matching declarations in system headers.
     bool IgnoreSystemHeaders{false};
-
-    bool SkipDeclsInModules{false};
   };
 
   MatchFinder(MatchFinderOptions Options = MatchFinderOptions());

diff  --git a/clang/lib/ASTMatchers/ASTMatchFinder.cpp 
b/clang/lib/ASTMatchers/ASTMatchFinder.cpp
index 004a02c279099..83ffae65c67d4 100644
--- a/clang/lib/ASTMatchers/ASTMatchFinder.cpp
+++ b/clang/lib/ASTMatchers/ASTMatchFinder.cpp
@@ -20,7 +20,6 @@
 #include "clang/AST/ASTContext.h"
 #include "clang/AST/DeclCXX.h"
 #include "clang/AST/RecursiveASTVisitor.h"
-#include "clang/Basic/Module.h"
 #include "llvm/ADT/DenseMap.h"
 #include "llvm/ADT/SmallPtrSet.h"
 #include "llvm/ADT/StringMap.h"
@@ -1512,9 +1511,6 @@ bool MatchASTVisitor::TraverseDecl(Decl *DeclNode) {
   if (shouldSkipNode(DeclNode))
     return true;
 
-  if (Options.SkipDeclsInModules && DeclNode->isInAnotherModuleUnit())
-    return true;
-
   bool ScopedTraversal =
       TraversingASTNodeNotSpelledInSource || DeclNode->isImplicit();
   bool ScopedChildren = TraversingASTChildrenNotSpelledInSource;


        
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to