[clang-tools-extra] [clang-tidy] Refactor the build system (PR #173518)
via cfe-commits
cfe-commits at lists.llvm.org
Thu Dec 25 21:24:26 PST 2025
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
More information about the cfe-commits
mailing list