llvmbot wrote:

<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-clangd

Author: Victor Chernyakin (localspook)

<details>
<summary>Changes</summary>

(If you're a clangd dev, there's a question for you near the end!)

Currently, every clang-tidy check module is a separate library, but I'm not 
sure that's the best architecture. I propose merging them all into the main 
`clangTidy` library.

Here are the costs of the current approach as I see them:

- It requires manually specifying dependencies among the modules.
  - 
[This](https://github.com/llvm/llvm-project/commit/ffd7a200fdfbd01ef296101647d2f2da91ddfd41)
 
[is](https://github.com/llvm/llvm-project/commit/d8e52d65f1e32c8ad6441f1a6781006faef12617)
 [error](https://github.com/llvm/llvm-project/pull/171427) 
[prone](https://github.com/llvm/llvm-project/commit/948a915924ded9364ddf2d55ad69f47b37bc0843).
  - Due to all the check aliases, the dependency graph among the modules is 
spaghetti.
- Defining each module requires a lot of boilerplate.
- All these libraries got so unwieldy that we had to [add the 
`ALL_CLANG_TIDY_CHECKS` 
variable](https://github.com/llvm/llvm-project/commit/d69fa737fff31a3d5d11d56117c20ca9794bb2a4)
 to wrangle them. But if everyone is just gonna use this variable, why have 
separate libraries in the first place?

What are we getting in exchange for those costs? Well, the one and only use 
case I could find is [clangd's `CLANGD_TIDY_CHECKS=OFF` 
option](https://reviews.llvm.org/D105679), which allows building clangd without 
building the clang-tidy checks (just the clang-tidy core). It exists to allow 
iterating faster when developing clangd. In its current state, this PR makes 
this use case impossible, but we could keep supporting it at a relatively small 
cost (say, by having just two libraries, `clangTidy` and `clangTidyChecks`). I 
want to hear from clangd folks first though: is this an important feature you 
would miss?

While SLOC doesn't correlate directly with complexity, this change cuts the 
size of our build system almost in half: 1234 → 640 lines (not including 
comments or blank lines, as counted by `cloc clang-tools-extra/clang-tidy`).

---

Patch is 58.60 KiB, truncated to 20.00 KiB below, full version: 
https://github.com/llvm/llvm-project/pull/173518.diff


33 Files Affected:

- (modified) clang-tools-extra/clang-tidy/CMakeLists.txt (+542-65) 
- (removed) clang-tools-extra/clang-tidy/abseil/CMakeLists.txt (-49) 
- (removed) clang-tools-extra/clang-tidy/altera/CMakeLists.txt (-29) 
- (removed) clang-tools-extra/clang-tidy/android/CMakeLists.txt (-40) 
- (removed) clang-tools-extra/clang-tidy/boost/CMakeLists.txt (-26) 
- (removed) clang-tools-extra/clang-tidy/bugprone/CMakeLists.txt (-138) 
- (removed) clang-tools-extra/clang-tidy/cert/CMakeLists.txt (-31) 
- (removed) clang-tools-extra/clang-tidy/concurrency/CMakeLists.txt (-28) 
- (removed) clang-tools-extra/clang-tidy/cppcoreguidelines/CMakeLists.txt (-63) 
- (removed) clang-tools-extra/clang-tidy/custom/CMakeLists.txt (-38) 
- (removed) clang-tools-extra/clang-tidy/darwin/CMakeLists.txt (-27) 
- (removed) clang-tools-extra/clang-tidy/fuchsia/CMakeLists.txt (-33) 
- (removed) clang-tools-extra/clang-tidy/google/CMakeLists.txt (-42) 
- (removed) clang-tools-extra/clang-tidy/hicpp/CMakeLists.txt (-37) 
- (removed) clang-tools-extra/clang-tidy/linuxkernel/CMakeLists.txt (-25) 
- (removed) clang-tools-extra/clang-tidy/llvm/CMakeLists.txt (-35) 
- (removed) clang-tools-extra/clang-tidy/llvmlibc/CMakeLists.txt (-30) 
- (modified) clang-tools-extra/clang-tidy/misc/CMakeLists.txt (-64) 
- (removed) clang-tools-extra/clang-tidy/modernize/CMakeLists.txt (-75) 
- (removed) clang-tools-extra/clang-tidy/mpi/CMakeLists.txt (-29) 
- (removed) clang-tools-extra/clang-tidy/objc/CMakeLists.txt (-33) 
- (removed) clang-tools-extra/clang-tidy/openmp/CMakeLists.txt (-24) 
- (removed) clang-tools-extra/clang-tidy/performance/CMakeLists.txt (-45) 
- (removed) clang-tools-extra/clang-tidy/plugin/CMakeLists.txt (-21) 
- (removed) clang-tools-extra/clang-tidy/portability/CMakeLists.txt (-31) 
- (removed) clang-tools-extra/clang-tidy/readability/CMakeLists.txt (-83) 
- (modified) clang-tools-extra/clang-tidy/tool/CMakeLists.txt (-2) 
- (removed) clang-tools-extra/clang-tidy/utils/CMakeLists.txt (-48) 
- (removed) clang-tools-extra/clang-tidy/zircon/CMakeLists.txt (-25) 
- (modified) clang-tools-extra/clangd/CMakeLists.txt (+3-4) 
- (modified) clang-tools-extra/clangd/tool/CMakeLists.txt (-1) 
- (modified) clang-tools-extra/clangd/unittests/CMakeLists.txt (-1) 
- (modified) clang-tools-extra/unittests/clang-tidy/CMakeLists.txt (-15) 


``````````diff
diff --git a/clang-tools-extra/clang-tidy/CMakeLists.txt 
b/clang-tools-extra/clang-tidy/CMakeLists.txt
index 153356245cfd1..e69fe662032b0 100644
--- a/clang-tools-extra/clang-tidy/CMakeLists.txt
+++ b/clang-tools-extra/clang-tidy/CMakeLists.txt
@@ -1,13 +1,19 @@
 set(LLVM_LINK_COMPONENTS
   FrontendOpenMP
   Support
+  TargetParser
   )
 
 configure_file(
   ${CMAKE_CURRENT_SOURCE_DIR}/clang-tidy-config.h.cmake
   ${CMAKE_CURRENT_BINARY_DIR}/clang-tidy-config.h)
 include_directories(BEFORE ${CMAKE_CURRENT_BINARY_DIR})
+include_directories(BEFORE ${CMAKE_CURRENT_BINARY_DIR}/misc)
+include_directories(BEFORE 
"${CMAKE_CURRENT_SOURCE_DIR}/../include-cleaner/include")
 
+add_subdirectory(misc)
+
+# If you add a check module, also add it to ClangTidyForceLinker.h in this 
directory.
 add_clang_library(clangTidy STATIC
   ClangTidy.cpp
   ClangTidyCheck.cpp
@@ -19,10 +25,495 @@ add_clang_library(clangTidy STATIC
   GlobList.cpp
   NoLintDirectiveHandler.cpp
 
+  abseil/AbseilTidyModule.cpp
+  abseil/CleanupCtadCheck.cpp
+  abseil/DurationAdditionCheck.cpp
+  abseil/DurationComparisonCheck.cpp
+  abseil/DurationConversionCastCheck.cpp
+  abseil/DurationDivisionCheck.cpp
+  abseil/DurationFactoryFloatCheck.cpp
+  abseil/DurationFactoryScaleCheck.cpp
+  abseil/DurationRewriter.cpp
+  abseil/DurationSubtractionCheck.cpp
+  abseil/DurationUnnecessaryConversionCheck.cpp
+  abseil/FasterStrsplitDelimiterCheck.cpp
+  abseil/NoInternalDependenciesCheck.cpp
+  abseil/NoNamespaceCheck.cpp
+  abseil/RedundantStrcatCallsCheck.cpp
+  abseil/StrCatAppendCheck.cpp
+  abseil/StringFindStartswithCheck.cpp
+  abseil/StringFindStrContainsCheck.cpp
+  abseil/TimeComparisonCheck.cpp
+  abseil/TimeSubtractionCheck.cpp
+  abseil/UpgradeDurationConversionsCheck.cpp
+  abseil/UncheckedStatusOrAccessCheck.cpp
+
+  altera/AlteraTidyModule.cpp
+  altera/IdDependentBackwardBranchCheck.cpp
+  altera/KernelNameRestrictionCheck.cpp
+  altera/SingleWorkItemBarrierCheck.cpp
+  altera/StructPackAlignCheck.cpp
+  altera/UnrollLoopsCheck.cpp
+
+  android/AndroidTidyModule.cpp
+  android/CloexecAccept4Check.cpp
+  android/CloexecAcceptCheck.cpp
+  android/CloexecCheck.cpp
+  android/CloexecCreatCheck.cpp
+  android/CloexecDupCheck.cpp
+  android/CloexecEpollCreate1Check.cpp
+  android/CloexecEpollCreateCheck.cpp
+  android/CloexecFopenCheck.cpp
+  android/CloexecInotifyInit1Check.cpp
+  android/CloexecInotifyInitCheck.cpp
+  android/CloexecMemfdCreateCheck.cpp
+  android/CloexecOpenCheck.cpp
+  android/CloexecPipeCheck.cpp
+  android/CloexecPipe2Check.cpp
+  android/CloexecSocketCheck.cpp
+  android/ComparisonInTempFailureRetryCheck.cpp
+
+  boost/BoostTidyModule.cpp
+  boost/UseRangesCheck.cpp
+  boost/UseToStringCheck.cpp
+
+  bugprone/ArgumentCommentCheck.cpp
+  bugprone/AssertSideEffectCheck.cpp
+  bugprone/AssignmentInIfConditionCheck.cpp
+  bugprone/BadSignalToKillThreadCheck.cpp
+  bugprone/BitwisePointerCastCheck.cpp
+  bugprone/BoolPointerImplicitConversionCheck.cpp
+  bugprone/BranchCloneCheck.cpp
+  bugprone/BugproneTidyModule.cpp
+  bugprone/CapturingThisInMemberVariableCheck.cpp
+  bugprone/CastingThroughVoidCheck.cpp
+  bugprone/ChainedComparisonCheck.cpp
+  bugprone/CommandProcessorCheck.cpp
+  bugprone/ComparePointerToMemberVirtualFunctionCheck.cpp
+  bugprone/CopyConstructorInitCheck.cpp
+  bugprone/CopyConstructorMutatesArgumentCheck.cpp
+  bugprone/CrtpConstructorAccessibilityCheck.cpp
+  bugprone/DanglingHandleCheck.cpp
+  bugprone/DefaultOperatorNewOnOveralignedTypeCheck.cpp
+  bugprone/DerivedMethodShadowingBaseMethodCheck.cpp
+  bugprone/DynamicStaticInitializersCheck.cpp
+  bugprone/EasilySwappableParametersCheck.cpp
+  bugprone/EmptyCatchCheck.cpp
+  bugprone/ExceptionCopyConstructorThrowsCheck.cpp
+  bugprone/ExceptionEscapeCheck.cpp
+  bugprone/FloatLoopCounterCheck.cpp
+  bugprone/FoldInitTypeCheck.cpp
+  bugprone/ForwardDeclarationNamespaceCheck.cpp
+  bugprone/ForwardingReferenceOverloadCheck.cpp
+  bugprone/ImplicitWideningOfMultiplicationResultCheck.cpp
+  bugprone/InaccurateEraseCheck.cpp
+  bugprone/IncorrectEnableIfCheck.cpp
+  bugprone/IncorrectEnableSharedFromThisCheck.cpp
+  bugprone/InvalidEnumDefaultInitializationCheck.cpp
+  bugprone/UnintendedCharOstreamOutputCheck.cpp
+  bugprone/ReturnConstRefFromParameterCheck.cpp
+  bugprone/SuspiciousStringviewDataUsageCheck.cpp
+  bugprone/SwitchMissingDefaultCaseCheck.cpp
+  bugprone/IncDecInConditionsCheck.cpp
+  bugprone/IncorrectEnableIfCheck.cpp
+  bugprone/IncorrectRoundingsCheck.cpp
+  bugprone/InfiniteLoopCheck.cpp
+  bugprone/IntegerDivisionCheck.cpp
+  bugprone/LambdaFunctionNameCheck.cpp
+  bugprone/MacroParenthesesCheck.cpp
+  bugprone/MacroRepeatedSideEffectsCheck.cpp
+  bugprone/MisleadingSetterOfReferenceCheck.cpp
+  bugprone/MisplacedOperatorInStrlenInAllocCheck.cpp
+  bugprone/MisplacedPointerArithmeticInAllocCheck.cpp
+  bugprone/MisplacedWideningCastCheck.cpp
+  bugprone/MoveForwardingReferenceCheck.cpp
+  bugprone/MultiLevelImplicitPointerConversionCheck.cpp
+  bugprone/MultipleNewInOneExpressionCheck.cpp
+  bugprone/MultipleStatementMacroCheck.cpp
+  bugprone/NarrowingConversionsCheck.cpp
+  bugprone/NoEscapeCheck.cpp
+  bugprone/NonZeroEnumToBoolConversionCheck.cpp
+  bugprone/NondeterministicPointerIterationOrderCheck.cpp
+  bugprone/NotNullTerminatedResultCheck.cpp
+  bugprone/OptionalValueConversionCheck.cpp
+  bugprone/ParentVirtualCallCheck.cpp
+  bugprone/PointerArithmeticOnPolymorphicObjectCheck.cpp
+  bugprone/PosixReturnCheck.cpp
+  bugprone/RandomGeneratorSeedCheck.cpp
+  bugprone/RawMemoryCallOnNonTrivialTypeCheck.cpp
+  bugprone/RedundantBranchConditionCheck.cpp
+  bugprone/ReservedIdentifierCheck.cpp
+  bugprone/ReturnConstRefFromParameterCheck.cpp
+  bugprone/SharedPtrArrayMismatchCheck.cpp
+  bugprone/SignalHandlerCheck.cpp
+  bugprone/SignedCharMisuseCheck.cpp
+  bugprone/SizeofContainerCheck.cpp
+  bugprone/SizeofExpressionCheck.cpp
+  bugprone/SmartPtrArrayMismatchCheck.cpp
+  bugprone/SpuriouslyWakeUpFunctionsCheck.cpp
+  bugprone/StandaloneEmptyCheck.cpp
+  bugprone/StdNamespaceModificationCheck.cpp
+  bugprone/StringConstructorCheck.cpp
+  bugprone/StringIntegerAssignmentCheck.cpp
+  bugprone/StringLiteralWithEmbeddedNulCheck.cpp
+  bugprone/StringviewNullptrCheck.cpp
+  bugprone/SuspiciousEnumUsageCheck.cpp
+  bugprone/SuspiciousIncludeCheck.cpp
+  bugprone/SuspiciousMemoryComparisonCheck.cpp
+  bugprone/SuspiciousMemsetUsageCheck.cpp
+  bugprone/SuspiciousMissingCommaCheck.cpp
+  bugprone/SuspiciousReallocUsageCheck.cpp
+  bugprone/SuspiciousSemicolonCheck.cpp
+  bugprone/SuspiciousStringCompareCheck.cpp
+  bugprone/SuspiciousStringviewDataUsageCheck.cpp
+  bugprone/SwappedArgumentsCheck.cpp
+  bugprone/SwitchMissingDefaultCaseCheck.cpp
+  bugprone/TaggedUnionMemberCountCheck.cpp
+  bugprone/TerminatingContinueCheck.cpp
+  bugprone/ThrowKeywordMissingCheck.cpp
+  bugprone/ThrowingStaticInitializationCheck.cpp
+  bugprone/TooSmallLoopVariableCheck.cpp
+  bugprone/UncheckedOptionalAccessCheck.cpp
+  bugprone/UncheckedStringToNumberConversionCheck.cpp
+  bugprone/UndefinedMemoryManipulationCheck.cpp
+  bugprone/UndelegatedConstructorCheck.cpp
+  bugprone/UnhandledExceptionAtNewCheck.cpp
+  bugprone/UnhandledSelfAssignmentCheck.cpp
+  bugprone/UniquePtrArrayMismatchCheck.cpp
+  bugprone/UnsafeFunctionsCheck.cpp
+  bugprone/UnusedLocalNonTrivialVariableCheck.cpp
+  bugprone/UnusedRaiiCheck.cpp
+  bugprone/UnusedReturnValueCheck.cpp
+  bugprone/UseAfterMoveCheck.cpp
+  bugprone/VirtualNearMissCheck.cpp
+
+  cert/CERTTidyModule.cpp
+
+  concurrency/ConcurrencyTidyModule.cpp
+  concurrency/MtUnsafeCheck.cpp
+  concurrency/ThreadCanceltypeAsynchronousCheck.cpp
+
+  cppcoreguidelines/AvoidCapturingLambdaCoroutinesCheck.cpp
+  cppcoreguidelines/AvoidConstOrRefDataMembersCheck.cpp
+  cppcoreguidelines/AvoidDoWhileCheck.cpp
+  cppcoreguidelines/AvoidGotoCheck.cpp
+  cppcoreguidelines/AvoidNonConstGlobalVariablesCheck.cpp
+  cppcoreguidelines/AvoidReferenceCoroutineParametersCheck.cpp
+  cppcoreguidelines/CppCoreGuidelinesTidyModule.cpp
+  cppcoreguidelines/InitVariablesCheck.cpp
+  cppcoreguidelines/InterfacesGlobalInitCheck.cpp
+  cppcoreguidelines/MacroUsageCheck.cpp
+  cppcoreguidelines/MisleadingCaptureDefaultByValueCheck.cpp
+  cppcoreguidelines/MissingStdForwardCheck.cpp
+  cppcoreguidelines/NoMallocCheck.cpp
+  cppcoreguidelines/NoSuspendWithLockCheck.cpp
+  cppcoreguidelines/OwningMemoryCheck.cpp
+  cppcoreguidelines/PreferMemberInitializerCheck.cpp
+  cppcoreguidelines/ProBoundsArrayToPointerDecayCheck.cpp
+  cppcoreguidelines/ProBoundsAvoidUncheckedContainerAccessCheck.cpp
+  cppcoreguidelines/ProBoundsConstantArrayIndexCheck.cpp
+  cppcoreguidelines/ProBoundsPointerArithmeticCheck.cpp
+  cppcoreguidelines/ProTypeConstCastCheck.cpp
+  cppcoreguidelines/ProTypeCstyleCastCheck.cpp
+  cppcoreguidelines/ProTypeMemberInitCheck.cpp
+  cppcoreguidelines/ProTypeReinterpretCastCheck.cpp
+  cppcoreguidelines/ProTypeStaticCastDowncastCheck.cpp
+  cppcoreguidelines/ProTypeUnionAccessCheck.cpp
+  cppcoreguidelines/ProTypeVarargCheck.cpp
+  cppcoreguidelines/RvalueReferenceParamNotMovedCheck.cpp
+  cppcoreguidelines/SlicingCheck.cpp
+  cppcoreguidelines/SpecialMemberFunctionsCheck.cpp
+  cppcoreguidelines/UseEnumClassCheck.cpp
+  cppcoreguidelines/VirtualClassDestructorCheck.cpp
+
+  $<$<BOOL:${CLANG_TIDY_ENABLE_QUERY_BASED_CUSTOM_CHECKS}>:
+    custom/CustomTidyModule.cpp
+    custom/QueryCheck.cpp
+  >
+
+  darwin/AvoidSpinlockCheck.cpp
+  darwin/DarwinTidyModule.cpp
+  darwin/DispatchOnceNonstaticCheck.cpp
+
+  fuchsia/DefaultArgumentsCallsCheck.cpp
+  fuchsia/DefaultArgumentsDeclarationsCheck.cpp
+  fuchsia/FuchsiaTidyModule.cpp
+  fuchsia/OverloadedOperatorCheck.cpp
+  fuchsia/StaticallyConstructedObjectsCheck.cpp
+  fuchsia/TemporaryObjectsCheck.cpp
+  fuchsia/TrailingReturnCheck.cpp
+  fuchsia/VirtualInheritanceCheck.cpp
+
+  google/AvoidNSObjectNewCheck.cpp
+  google/AvoidThrowingObjCExceptionCheck.cpp
+  google/AvoidUnderscoreInGoogletestNameCheck.cpp
+  google/DefaultArgumentsCheck.cpp
+  google/ExplicitConstructorCheck.cpp
+  google/ExplicitMakePairCheck.cpp
+  google/FloatTypesCheck.cpp
+  google/FunctionNamingCheck.cpp
+  google/GlobalNamesInHeadersCheck.cpp
+  google/GlobalVariableDeclarationCheck.cpp
+  google/GoogleTidyModule.cpp
+  google/IntegerTypesCheck.cpp
+  google/OverloadedUnaryAndCheck.cpp
+  google/TodoCommentCheck.cpp
+  google/UnnamedNamespaceInHeaderCheck.cpp
+  google/UpgradeGoogletestCaseCheck.cpp
+  google/UsingNamespaceDirectiveCheck.cpp
+
+  hicpp/ExceptionBaseclassCheck.cpp
+  hicpp/HICPPTidyModule.cpp
+  hicpp/IgnoredRemoveResultCheck.cpp
+  hicpp/MultiwayPathsCoveredCheck.cpp
+  hicpp/NoAssemblerCheck.cpp
+  hicpp/SignedBitwiseCheck.cpp
+
+  linuxkernel/LinuxKernelTidyModule.cpp
+  linuxkernel/MustCheckErrsCheck.cpp
+
+  llvm/HeaderGuardCheck.cpp
+  llvm/IncludeOrderCheck.cpp
+  llvm/LLVMTidyModule.cpp
+  llvm/PreferIsaOrDynCastInConditionalsCheck.cpp
+  llvm/PreferRegisterOverUnsignedCheck.cpp
+  llvm/PreferStaticOverAnonymousNamespaceCheck.cpp
+  llvm/TwineLocalCheck.cpp
+  llvm/UseNewMLIROpBuilderCheck.cpp
+  llvm/UseRangesCheck.cpp
+
+  llvmlibc/CalleeNamespaceCheck.cpp
+  llvmlibc/ImplementationInNamespaceCheck.cpp
+  llvmlibc/InlineFunctionDeclCheck.cpp
+  llvmlibc/LLVMLibcTidyModule.cpp
+  llvmlibc/RestrictSystemLibcHeadersCheck.cpp
+
+  misc/ConstCorrectnessCheck.cpp
+  misc/CoroutineHostileRAIICheck.cpp
+  misc/DefinitionsInHeadersCheck.cpp
+  misc/ConfusableIdentifierCheck.cpp
+  misc/HeaderIncludeCycleCheck.cpp
+  misc/IncludeCleanerCheck.cpp
+  misc/MiscTidyModule.cpp
+  misc/MisleadingBidirectionalCheck.cpp
+  misc/MisleadingIdentifierCheck.cpp
+  misc/MisplacedConstCheck.cpp
+  misc/MultipleInheritanceCheck.cpp
+  misc/NewDeleteOverloadsCheck.cpp
+  misc/NoRecursionCheck.cpp
+  misc/NonCopyableObjectsCheck.cpp
+  misc/NonPrivateMemberVariablesInClassesCheck.cpp
+  misc/OverrideWithDifferentVisibilityCheck.cpp
+  misc/PredictableRandCheck.cpp
+  misc/RedundantExpressionCheck.cpp
+  misc/StaticAssertCheck.cpp
+  misc/ThrowByValueCatchByReferenceCheck.cpp
+  misc/UnconventionalAssignOperatorCheck.cpp
+  misc/UniqueptrResetReleaseCheck.cpp
+  misc/UnusedAliasDeclsCheck.cpp
+  misc/UnusedParametersCheck.cpp
+  misc/UnusedUsingDeclsCheck.cpp
+  misc/UseAnonymousNamespaceCheck.cpp
+  misc/UseInternalLinkageCheck.cpp
+
+  modernize/AvoidBindCheck.cpp
+  modernize/AvoidCArraysCheck.cpp
+  modernize/AvoidCStyleCastCheck.cpp
+  modernize/AvoidSetjmpLongjmpCheck.cpp
+  modernize/AvoidVariadicFunctionsCheck.cpp
+  modernize/ConcatNestedNamespacesCheck.cpp
+  modernize/DeprecatedHeadersCheck.cpp
+  modernize/DeprecatedIosBaseAliasesCheck.cpp
+  modernize/IntegralLiteralExpressionMatcher.cpp
+  modernize/LoopConvertCheck.cpp
+  modernize/LoopConvertUtils.cpp
+  modernize/MacroToEnumCheck.cpp
+  modernize/MakeSharedCheck.cpp
+  modernize/MakeSmartPtrCheck.cpp
+  modernize/MakeUniqueCheck.cpp
+  modernize/MinMaxUseInitializerListCheck.cpp
+  modernize/ModernizeTidyModule.cpp
+  modernize/PassByValueCheck.cpp
+  modernize/RawStringLiteralCheck.cpp
+  modernize/RedundantVoidArgCheck.cpp
+  modernize/ReplaceAutoPtrCheck.cpp
+  modernize/ReplaceDisallowCopyAndAssignMacroCheck.cpp
+  modernize/ReplaceRandomShuffleCheck.cpp
+  modernize/ReturnBracedInitListCheck.cpp
+  modernize/ShrinkToFitCheck.cpp
+  modernize/TypeTraitsCheck.cpp
+  modernize/UnaryStaticAssertCheck.cpp
+  modernize/UseAutoCheck.cpp
+  modernize/UseBoolLiteralsCheck.cpp
+  modernize/UseConstraintsCheck.cpp
+  modernize/UseDefaultMemberInitCheck.cpp
+  modernize/UseDesignatedInitializersCheck.cpp
+  modernize/UseEmplaceCheck.cpp
+  modernize/UseEqualsDefaultCheck.cpp
+  modernize/UseEqualsDeleteCheck.cpp
+  modernize/UseIntegerSignComparisonCheck.cpp
+  modernize/UseNodiscardCheck.cpp
+  modernize/UseNoexceptCheck.cpp
+  modernize/UseNullptrCheck.cpp
+  modernize/UseOverrideCheck.cpp
+  modernize/UseRangesCheck.cpp
+  modernize/UseScopedLockCheck.cpp
+  modernize/UseStartsEndsWithCheck.cpp
+  modernize/UseStdFormatCheck.cpp
+  modernize/UseStdNumbersCheck.cpp
+  modernize/UseStdPrintCheck.cpp
+  modernize/UseTrailingReturnTypeCheck.cpp
+  modernize/UseTransparentFunctorsCheck.cpp
+  modernize/UseUncaughtExceptionsCheck.cpp
+  modernize/UseUsingCheck.cpp
+
+  $<$<BOOL:${CLANG_TIDY_ENABLE_STATIC_ANALYZER}>:
+    mpi/BufferDerefCheck.cpp
+    mpi/MPITidyModule.cpp
+    mpi/TypeMismatchCheck.cpp
+  >
+
+  objc/AssertEqualsCheck.cpp
+  objc/AvoidNSErrorInitCheck.cpp
+  objc/DeallocInCategoryCheck.cpp
+  objc/ForbiddenSubclassingCheck.cpp
+  objc/MissingHashCheck.cpp
+  objc/NSInvocationArgumentLifetimeCheck.cpp
+  objc/NSDateFormatterCheck.cpp
+  objc/ObjCTidyModule.cpp
+  objc/PropertyDeclarationCheck.cpp
+  objc/SuperSelfCheck.cpp
+
+  openmp/ExceptionEscapeCheck.cpp
+  openmp/OpenMPTidyModule.cpp
+  openmp/UseDefaultNoneCheck.cpp
+
+  performance/AvoidEndlCheck.cpp
+  performance/EnumSizeCheck.cpp
+  performance/FasterStringFindCheck.cpp
+  performance/ForRangeCopyCheck.cpp
+  performance/ImplicitConversionInLoopCheck.cpp
+  performance/InefficientAlgorithmCheck.cpp
+  performance/InefficientStringConcatenationCheck.cpp
+  performance/InefficientVectorOperationCheck.cpp
+  performance/MoveConstArgCheck.cpp
+  performance/MoveConstructorInitCheck.cpp
+  performance/NoAutomaticMoveCheck.cpp
+  performance/NoIntToPtrCheck.cpp
+  performance/NoexceptDestructorCheck.cpp
+  performance/NoexceptFunctionBaseCheck.cpp
+  performance/NoexceptMoveConstructorCheck.cpp
+  performance/NoexceptSwapCheck.cpp
+  performance/PerformanceTidyModule.cpp
+  performance/TriviallyDestructibleCheck.cpp
+  performance/TypePromotionInMathFnCheck.cpp
+  performance/UnnecessaryCopyInitializationCheck.cpp
+  performance/UnnecessaryValueParamCheck.cpp
+
+  plugin/ClangTidyPlugin.cpp
+
+  portability/AvoidPragmaOnceCheck.cpp
+  portability/PortabilityTidyModule.cpp
+  portability/RestrictSystemIncludesCheck.cpp
+  portability/SIMDIntrinsicsCheck.cpp
+  portability/StdAllocatorConstCheck.cpp
+  portability/TemplateVirtualMemberFunctionCheck.cpp
+
+  readability/AmbiguousSmartptrResetCallCheck.cpp
+  readability/AvoidConstParamsInDeclsCheck.cpp
+  readability/AvoidNestedConditionalOperatorCheck.cpp
+  readability/AvoidReturnWithVoidValueCheck.cpp
+  readability/AvoidUnconditionalPreprocessorIfCheck.cpp
+  readability/BracesAroundStatementsCheck.cpp
+  readability/ConstReturnTypeCheck.cpp
+  readability/ContainerContainsCheck.cpp
+  readability/ContainerDataPointerCheck.cpp
+  readability/ContainerSizeEmptyCheck.cpp
+  readability/ConvertMemberFunctionsToStaticCheck.cpp
+  readability/DeleteNullPointerCheck.cpp
+  readability/DuplicateIncludeCheck.cpp
+  readability/ElseAfterReturnCheck.cpp
+  readability/EnumInitialValueCheck.cpp
+  readability/FunctionCognitiveComplexityCheck.cpp
+  readability/FunctionSizeCheck.cpp
+  readability/IdentifierLengthCheck.cpp
+  readability/IdentifierNamingCheck.cpp
+  readability/ImplicitBoolConversionCheck.cpp
+  readability/RedundantInlineSpecifierCheck.cpp
+  readability/InconsistentDeclarationParameterNameCheck.cpp
+  readability/IsolateDeclarationCheck.cpp
+  readability/MagicNumbersCheck.cpp
+  readability/MakeMemberFunctionConstCheck.cpp
+  readability/MathMissingParenthesesCheck.cpp
+  readability/MisleadingIndentationCheck.cpp
+  readability/MisplacedArrayIndexCheck.cpp
+  readability/NamedParameterCheck.cpp
+  readability/NamespaceCommentCheck.cpp
+  readability/NonConstParameterCheck.cpp
+  readability/OperatorsRepresentationCheck.cpp
+  readability/QualifiedAutoCheck.cpp
+  readability/ReadabilityTidyModule.cpp
+  readability/RedundantAccessSpecifiersCheck.cpp
+  readability/RedundantCastingCheck.cpp
+  readability/RedundantControlFlowCheck.cpp
+  readability/RedundantDeclarationCheck.cpp
+  readability/RedundantFunctionPtrDereferenceCheck.cpp
+  readability/RedundantMemberInitCheck.cpp
+  readability/RedundantParenthesesCheck.cpp
+  readability/RedundantPreprocessorCheck.cpp
+  readability/RedundantSmartptrGetCheck.cpp
+  readability/RedundantStringCStrCheck.cpp
+  readability/RedundantStringInitCheck.cpp
+  readability/RedundantTypenameCheck.cpp
+  readability/ReferenceToConstructedTemporaryCheck.cpp
+  readability/SimplifyBooleanExprCheck.cpp
+  readability/SimplifySubscriptExprCheck.cpp
+  readability/StaticAccessedThroughInstanceCheck.cpp
+  readability/StaticDefinitionInAnonymousNamespaceCheck.cpp
+  readability/StringCompareCheck.cpp
+  readability/SuspiciousCallArgumentCheck.cpp
+  readability/UniqueptrDeleteReleaseCheck.cpp
+  readability/UppercaseLiteralSuffixCheck.cpp
+  readability/UseAnyOfAllOfCheck.cpp
+  readability/UseConcisePreprocessorDirectivesCheck.cpp
+  readability/UseStdMinMaxCheck.cpp
+
+  utils/Aliasing.cpp
+  utils/ASTUtils.cpp
+  utils/BracesAroundStatement.cpp
+  utils/DeclRefExprUtils.cpp
+  utils/DesignatedInitializers.cpp
+  utils/ExceptionAnalyzer.cpp
+  utils/ExceptionSpecAnalyzer.cpp
+  utils/ExprSequence.cpp
+  utils/FileExtensionsUtils.cpp
+  utils/FormatStringConverter.cpp
+  utils/FixItHintUtils.cpp
+  utils/HeaderGuard.cpp
+  utils/IncludeInserter.cpp
+  utils/IncludeSorter.cpp
+  utils/LexerUtils.cpp
+  utils/Matchers.cpp
+  utils/NamespaceAliaser.cpp
+  utils/OptionsUtils.cpp
+  utils/RenamerClangTidyCheck.cpp
+  utils/TransformerClangTidyCheck.cpp
+  utils/TypeTraits.cpp
+  utils/UseRangesCheck.cpp
+  utils/UsingInserter.cpp
+
+  zircon/ZirconTidyModule.cpp
+
+  LINK_LIBS
+  $<$<BOOL:${CLANG_TIDY_ENABLE_QUERY_BASED_CUSTOM_CHECKS}>:
+    clangQuery
+  >
+
   DEPENDS
-  ClangSACheckers
+  genconfusable
   omp_gen
   ClangDriverOptions
+  ClangSACheckers
   )
 
 clang_target_link_libraries(clangTidy
@@ -30,54 +521,57 @@ clang_target_link_libraries(clangTidy
   clangAST
   clangASTMatchers
   clangAnalysis
+  clangAnalysisFlowSensitive
+  clangAnalysisFlowSensitiveModels
   clangBasic
   clangFormat
   clangFrontend
   clangLex
   clangRewrite
+  clangSema
   clangSerialization
   clangTooling
   clangToolingCore
-  )
+  clangToolingInclusions
+  clangToolingInclusionsStdlib
+  clangTransformer
 
-if(CLANG_TIDY_ENABLE_STATIC_ANALYZER)
-  clang_target_link_libraries(clangTidy
-    PRIVATE
+  $<$<BOOL:${CLANG_TIDY_ENABLE_QUERY_BASED_CUSTOM_CHECKS}>:
+    clangDynamicASTMatchers
+  >
+
+  $<$<BOOL:${CLANG_TIDY_ENABLE_STATIC_ANALYZER}>:
+    clangStaticAnalyzerCheckers
     clangStaticAnalyzerCore
     clangStaticAnalyzerFrontend
+  >
   )
-endif()
 
-# Checks.
-# If you add a check, a...
[truncated]

``````````

</details>


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

Reply via email to