[PATCH] D156024: [clang-tidy] Add --experimental-disable-module-headers-parsing option

2023-07-24 Thread Piotr Zegar via Phabricator via cfe-commits
PiotrZSL abandoned this revision.
PiotrZSL added a comment.

Will be integrated into D156161 .


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D156024/new/

https://reviews.llvm.org/D156024

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D156024: [clang-tidy] Add --experimental-disable-module-headers-parsing option

2023-07-24 Thread Piotr Zegar via Phabricator via cfe-commits
PiotrZSL added inline comments.



Comment at: clang-tools-extra/clang-tidy/ClangTidyDiagnosticConsumer.h:202
 
+  bool canEnableModuleHeadersParsing() const {
+return !DisableModuleHeadersParsing;

carlosgalvezp wrote:
> Add docs?
for function ? It's straight forward, but yes, I can add some one liner...



Comment at: clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:266
 
+static cl::opt
+DisableModuleHeadersParsing("experimental-disable-module-headers-parsing",

carlosgalvezp wrote:
> Add documentation
This is hidden option. allow-enabling-analyzer-alpha-checkers is also hidden 
and has no documentation. That I base on.
So 2 questions:
- should it be hidden ?
- if stay hidden, does it need documentation ? (I'm fine with adding some)


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D156024/new/

https://reviews.llvm.org/D156024

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D156024: [clang-tidy] Add --experimental-disable-module-headers-parsing option

2023-07-24 Thread Carlos Galvez via Phabricator via cfe-commits
carlosgalvezp added inline comments.



Comment at: clang-tools-extra/clang-tidy/ClangTidyDiagnosticConsumer.h:202
 
+  bool canEnableModuleHeadersParsing() const {
+return !DisableModuleHeadersParsing;

Add docs?



Comment at: clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:266
 
+static cl::opt
+DisableModuleHeadersParsing("experimental-disable-module-headers-parsing",

Add documentation


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D156024/new/

https://reviews.llvm.org/D156024

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D156024: [clang-tidy] Add --experimental-disable-module-headers-parsing option

2023-07-24 Thread Piotr Zegar via Phabricator via cfe-commits
PiotrZSL updated this revision to Diff 543641.
PiotrZSL retitled this revision from "[clang-tidy] Add 
--disable-modular-headers-expansion option" to "[clang-tidy] Add 
--experimental-disable-module-headers-parsing option".
PiotrZSL added a comment.

Rename of option + cleanup


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D156024/new/

https://reviews.llvm.org/D156024

Files:
  clang-tools-extra/clang-tidy/ClangTidy.cpp
  clang-tools-extra/clang-tidy/ClangTidyDiagnosticConsumer.cpp
  clang-tools-extra/clang-tidy/ClangTidyDiagnosticConsumer.h
  clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp


Index: clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp
===
--- clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp
+++ clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp
@@ -263,6 +263,11 @@
cl::init(false), cl::Hidden,
cl::cat(ClangTidyCategory));
 
+static cl::opt
+DisableModuleHeadersParsing("experimental-disable-module-headers-parsing",
+cl::init(false), cl::Hidden,
+cl::cat(ClangTidyCategory));
+
 static cl::opt ExportFixes("export-fixes", desc(R"(
 YAML file to store suggested fixes in. The
 stored fixes can be applied to the input source
@@ -659,7 +664,8 @@
   llvm::InitializeAllAsmParsers();
 
   ClangTidyContext Context(std::move(OwningOptionsProvider),
-   AllowEnablingAnalyzerAlphaCheckers);
+   AllowEnablingAnalyzerAlphaCheckers,
+   DisableModuleHeadersParsing);
   std::vector Errors =
   runClangTidy(Context, OptionsParser->getCompilations(), PathList, BaseFS,
FixNotes, EnableCheckProfile, ProfilePrefix);
Index: clang-tools-extra/clang-tidy/ClangTidyDiagnosticConsumer.h
===
--- clang-tools-extra/clang-tidy/ClangTidyDiagnosticConsumer.h
+++ clang-tools-extra/clang-tidy/ClangTidyDiagnosticConsumer.h
@@ -70,7 +70,8 @@
 public:
   /// Initializes \c ClangTidyContext instance.
   ClangTidyContext(std::unique_ptr OptionsProvider,
-   bool AllowEnablingAnalyzerAlphaCheckers = false);
+   bool AllowEnablingAnalyzerAlphaCheckers = false,
+   bool DisableModuleHeadersParsing = false);
   /// Sets the DiagnosticsEngine that diag() will emit diagnostics to.
   // FIXME: this is required initialization, and should be a constructor param.
   // Fix the context -> diag engine -> consumer -> context initialization 
cycle.
@@ -198,6 +199,10 @@
 return AllowEnablingAnalyzerAlphaCheckers;
   }
 
+  bool canEnableModuleHeadersParsing() const {
+return !DisableModuleHeadersParsing;
+  }
+
   void setSelfContainedDiags(bool Value) { SelfContainedDiags = Value; }
 
   bool areDiagsSelfContained() const { return SelfContainedDiags; }
@@ -245,6 +250,7 @@
   std::string ProfilePrefix;
 
   bool AllowEnablingAnalyzerAlphaCheckers;
+  bool DisableModuleHeadersParsing;
 
   bool SelfContainedDiags;
 
Index: clang-tools-extra/clang-tidy/ClangTidyDiagnosticConsumer.cpp
===
--- clang-tools-extra/clang-tidy/ClangTidyDiagnosticConsumer.cpp
+++ clang-tools-extra/clang-tidy/ClangTidyDiagnosticConsumer.cpp
@@ -161,10 +161,11 @@
 
 ClangTidyContext::ClangTidyContext(
 std::unique_ptr OptionsProvider,
-bool AllowEnablingAnalyzerAlphaCheckers)
+bool AllowEnablingAnalyzerAlphaCheckers, bool DisableModuleHeadersParsing)
 : DiagEngine(nullptr), OptionsProvider(std::move(OptionsProvider)),
   Profile(false),
   AllowEnablingAnalyzerAlphaCheckers(AllowEnablingAnalyzerAlphaCheckers),
+  DisableModuleHeadersParsing(DisableModuleHeadersParsing),
   SelfContainedDiags(false) {
   // Before the first translation unit we can get errors related to 
command-line
   // parsing, use empty string for the file name in this case.
Index: clang-tools-extra/clang-tidy/ClangTidy.cpp
===
--- clang-tools-extra/clang-tidy/ClangTidy.cpp
+++ clang-tools-extra/clang-tidy/ClangTidy.cpp
@@ -418,7 +418,8 @@
   Preprocessor *PP = &Compiler.getPreprocessor();
   Preprocessor *ModuleExpanderPP = PP;
 
-  if (Context.getLangOpts().Modules && OverlayFS != nullptr) {
+  if (Context.canEnableModuleHeadersParsing() &&
+  Context.getLangOpts().Modules && OverlayFS != nullptr) {
 auto ModuleExpander = std::make_unique(
 &Compiler, OverlayFS);
 ModuleExpanderPP = ModuleExpander->getPreprocessor();


Index: clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp
===
--- clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp
+++ clang-tools-extra/clang-tidy/tool/ClangTidyMain.cp