//===--- BugproneTidyModule.cpp - clang-tidy ------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// #include "../ClangTidy.h" #include "../ClangTidyModule.h" #include "../ClangTidyModuleRegistry.h" #include "../cppcoreguidelines/NarrowingConversionsCheck.h" #include "ArgumentCommentCheck.h" #include "AssertSideEffectCheck.h" #include "BoolPointerImplicitConversionCheck.h" #include "BranchCloneCheck.h" #include "CopyConstructorInitCheck.h" #include "DanglingHandleCheck.h" #include "DynamicStaticInitializersCheck.h" #include "ExceptionEscapeCheck.h" #include "FoldInitTypeCheck.h" #include "ForwardDeclarationNamespaceCheck.h" #include "ForwardingReferenceOverloadCheck.h" #include "InaccurateEraseCheck.h" #include "IncorrectRoundingsCheck.h" #include "IntegerDivisionCheck.h" #include "LambdaFunctionNameCheck.h" #include "MacroParenthesesCheck.h" #include "MacroRepeatedSideEffectsCheck.h" #include "MisplacedOperatorInStrlenInAllocCheck.h" #include "MisplacedWideningCastCheck.h" #include "MoveForwardingReferenceCheck.h" #include "MultipleStatementMacroCheck.h" #include "ParentVirtualCallCheck.h" #include "PosixReturnCheck.h" #include "SizeofContainerCheck.h" #include "SizeofExpressionCheck.h" #include "StringConstructorCheck.h" #include "StringIntegerAssignmentCheck.h" #include "StringLiteralWithEmbeddedNulCheck.h" #include "SuspiciousEnumUsageCheck.h" #include "SuspiciousMemsetUsageCheck.h" #include "SuspiciousMissingCommaCheck.h" #include "SuspiciousSemicolonCheck.h" #include "SuspiciousStringCompareCheck.h" #include "SwappedArgumentsCheck.h" #include "TerminatingContinueCheck.h" #include "ThrowKeywordMissingCheck.h" #include "TooSmallLoopVariableCheck.h" #include "UndefinedMemoryManipulationCheck.h" #include "UndelegatedConstructorCheck.h" #include "UnhandledSelfAssignmentCheck.h" #include "UnusedRaiiCheck.h" #include "UnusedReturnValueCheck.h" #include "UseAfterMoveCheck.h" #include "VirtualNearMissCheck.h" namespace clang { namespace tidy { namespace bugprone { class BugproneModule : public ClangTidyModule { public: void addCheckFactories(ClangTidyCheckFactories &CheckFactories) override { CheckFactories.registerCheck( "bugprone-argument-comment"); CheckFactories.registerCheck( "bugprone-assert-side-effect"); CheckFactories.registerCheck( "bugprone-bool-pointer-implicit-conversion"); CheckFactories.registerCheck( "bugprone-branch-clone"); CheckFactories.registerCheck( "bugprone-copy-constructor-init"); CheckFactories.registerCheck( "bugprone-dangling-handle"); CheckFactories.registerCheck( "bugprone-dynamic-static-initializers"); CheckFactories.registerCheck( "bugprone-exception-escape"); CheckFactories.registerCheck( "bugprone-fold-init-type"); CheckFactories.registerCheck( "bugprone-forward-declaration-namespace"); CheckFactories.registerCheck( "bugprone-forwarding-reference-overload"); CheckFactories.registerCheck( "bugprone-inaccurate-erase"); CheckFactories.registerCheck( "bugprone-incorrect-roundings"); CheckFactories.registerCheck( "bugprone-integer-division"); CheckFactories.registerCheck( "bugprone-lambda-function-name"); CheckFactories.registerCheck( "bugprone-macro-parentheses"); CheckFactories.registerCheck( "bugprone-macro-repeated-side-effects"); CheckFactories.registerCheck( "bugprone-misplaced-operator-in-strlen-in-alloc"); CheckFactories.registerCheck( "bugprone-misplaced-widening-cast"); CheckFactories.registerCheck( "bugprone-move-forwarding-reference"); CheckFactories.registerCheck( "bugprone-multiple-statement-macro"); CheckFactories.registerCheck( "bugprone-narrowing-conversions"); CheckFactories.registerCheck( "bugprone-parent-virtual-call"); CheckFactories.registerCheck( "bugprone-posix-return"); CheckFactories.registerCheck( "bugprone-sizeof-container"); CheckFactories.registerCheck( "bugprone-sizeof-expression"); CheckFactories.registerCheck( "bugprone-string-constructor"); CheckFactories.registerCheck( "bugprone-string-integer-assignment"); CheckFactories.registerCheck( "bugprone-string-literal-with-embedded-nul"); CheckFactories.registerCheck( "bugprone-suspicious-enum-usage"); CheckFactories.registerCheck( "bugprone-suspicious-memset-usage"); CheckFactories.registerCheck( "bugprone-suspicious-missing-comma"); CheckFactories.registerCheck( "bugprone-suspicious-semicolon"); CheckFactories.registerCheck( "bugprone-suspicious-string-compare"); CheckFactories.registerCheck( "bugprone-swapped-arguments"); CheckFactories.registerCheck( "bugprone-terminating-continue"); CheckFactories.registerCheck( "bugprone-throw-keyword-missing"); CheckFactories.registerCheck( "bugprone-too-small-loop-variable"); CheckFactories.registerCheck( "bugprone-undefined-memory-manipulation"); CheckFactories.registerCheck( "bugprone-undelegated-constructor"); CheckFactories.registerCheck( "bugprone-unhandled-self-assignment"); CheckFactories.registerCheck( "bugprone-unused-raii"); CheckFactories.registerCheck( "bugprone-unused-return-value"); CheckFactories.registerCheck( "bugprone-use-after-move"); CheckFactories.registerCheck( "bugprone-virtual-near-miss"); } }; } // namespace bugprone // Register the BugproneTidyModule using this statically initialized variable. static ClangTidyModuleRegistry::Add X("bugprone-module", "Adds checks for bugprone code constructs."); // This anchor is used to force the linker to link in the generated object file // and thus register the BugproneModule. volatile int BugproneModuleAnchorSource = 0; } // namespace tidy } // namespace clang