152 lines · cpp
1//===----------------------------------------------------------------------===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8 9#include "../ClangTidy.h"10#include "../ClangTidyModule.h"11#include "../ClangTidyModuleRegistry.h"12#include "AvoidBindCheck.h"13#include "AvoidCArraysCheck.h"14#include "AvoidSetjmpLongjmpCheck.h"15#include "AvoidVariadicFunctionsCheck.h"16#include "ConcatNestedNamespacesCheck.h"17#include "DeprecatedHeadersCheck.h"18#include "DeprecatedIosBaseAliasesCheck.h"19#include "LoopConvertCheck.h"20#include "MacroToEnumCheck.h"21#include "MakeSharedCheck.h"22#include "MakeUniqueCheck.h"23#include "MinMaxUseInitializerListCheck.h"24#include "PassByValueCheck.h"25#include "RawStringLiteralCheck.h"26#include "RedundantVoidArgCheck.h"27#include "ReplaceAutoPtrCheck.h"28#include "ReplaceDisallowCopyAndAssignMacroCheck.h"29#include "ReplaceRandomShuffleCheck.h"30#include "ReturnBracedInitListCheck.h"31#include "ShrinkToFitCheck.h"32#include "TypeTraitsCheck.h"33#include "UnaryStaticAssertCheck.h"34#include "UseAutoCheck.h"35#include "UseBoolLiteralsCheck.h"36#include "UseConstraintsCheck.h"37#include "UseDefaultMemberInitCheck.h"38#include "UseDesignatedInitializersCheck.h"39#include "UseEmplaceCheck.h"40#include "UseEqualsDefaultCheck.h"41#include "UseEqualsDeleteCheck.h"42#include "UseIntegerSignComparisonCheck.h"43#include "UseNodiscardCheck.h"44#include "UseNoexceptCheck.h"45#include "UseNullptrCheck.h"46#include "UseOverrideCheck.h"47#include "UseRangesCheck.h"48#include "UseScopedLockCheck.h"49#include "UseStartsEndsWithCheck.h"50#include "UseStdFormatCheck.h"51#include "UseStdNumbersCheck.h"52#include "UseStdPrintCheck.h"53#include "UseTrailingReturnTypeCheck.h"54#include "UseTransparentFunctorsCheck.h"55#include "UseUncaughtExceptionsCheck.h"56#include "UseUsingCheck.h"57 58using namespace clang::ast_matchers;59 60namespace clang::tidy {61namespace modernize {62 63class ModernizeModule : public ClangTidyModule {64public:65 void addCheckFactories(ClangTidyCheckFactories &CheckFactories) override {66 CheckFactories.registerCheck<AvoidBindCheck>("modernize-avoid-bind");67 CheckFactories.registerCheck<AvoidCArraysCheck>("modernize-avoid-c-arrays");68 CheckFactories.registerCheck<AvoidSetjmpLongjmpCheck>(69 "modernize-avoid-setjmp-longjmp");70 CheckFactories.registerCheck<AvoidVariadicFunctionsCheck>(71 "modernize-avoid-variadic-functions");72 CheckFactories.registerCheck<ConcatNestedNamespacesCheck>(73 "modernize-concat-nested-namespaces");74 CheckFactories.registerCheck<DeprecatedHeadersCheck>(75 "modernize-deprecated-headers");76 CheckFactories.registerCheck<DeprecatedIosBaseAliasesCheck>(77 "modernize-deprecated-ios-base-aliases");78 CheckFactories.registerCheck<LoopConvertCheck>("modernize-loop-convert");79 CheckFactories.registerCheck<MacroToEnumCheck>("modernize-macro-to-enum");80 CheckFactories.registerCheck<MakeSharedCheck>("modernize-make-shared");81 CheckFactories.registerCheck<MakeUniqueCheck>("modernize-make-unique");82 CheckFactories.registerCheck<MinMaxUseInitializerListCheck>(83 "modernize-min-max-use-initializer-list");84 CheckFactories.registerCheck<PassByValueCheck>("modernize-pass-by-value");85 CheckFactories.registerCheck<UseDesignatedInitializersCheck>(86 "modernize-use-designated-initializers");87 CheckFactories.registerCheck<UseIntegerSignComparisonCheck>(88 "modernize-use-integer-sign-comparison");89 CheckFactories.registerCheck<UseRangesCheck>("modernize-use-ranges");90 CheckFactories.registerCheck<UseScopedLockCheck>(91 "modernize-use-scoped-lock");92 CheckFactories.registerCheck<UseStartsEndsWithCheck>(93 "modernize-use-starts-ends-with");94 CheckFactories.registerCheck<UseStdFormatCheck>("modernize-use-std-format");95 CheckFactories.registerCheck<UseStdNumbersCheck>(96 "modernize-use-std-numbers");97 CheckFactories.registerCheck<UseStdPrintCheck>("modernize-use-std-print");98 CheckFactories.registerCheck<RawStringLiteralCheck>(99 "modernize-raw-string-literal");100 CheckFactories.registerCheck<RedundantVoidArgCheck>(101 "modernize-redundant-void-arg");102 CheckFactories.registerCheck<ReplaceAutoPtrCheck>(103 "modernize-replace-auto-ptr");104 CheckFactories.registerCheck<ReplaceDisallowCopyAndAssignMacroCheck>(105 "modernize-replace-disallow-copy-and-assign-macro");106 CheckFactories.registerCheck<ReplaceRandomShuffleCheck>(107 "modernize-replace-random-shuffle");108 CheckFactories.registerCheck<ReturnBracedInitListCheck>(109 "modernize-return-braced-init-list");110 CheckFactories.registerCheck<ShrinkToFitCheck>("modernize-shrink-to-fit");111 CheckFactories.registerCheck<TypeTraitsCheck>("modernize-type-traits");112 CheckFactories.registerCheck<UnaryStaticAssertCheck>(113 "modernize-unary-static-assert");114 CheckFactories.registerCheck<UseAutoCheck>("modernize-use-auto");115 CheckFactories.registerCheck<UseBoolLiteralsCheck>(116 "modernize-use-bool-literals");117 CheckFactories.registerCheck<UseConstraintsCheck>(118 "modernize-use-constraints");119 CheckFactories.registerCheck<UseDefaultMemberInitCheck>(120 "modernize-use-default-member-init");121 CheckFactories.registerCheck<UseEmplaceCheck>("modernize-use-emplace");122 CheckFactories.registerCheck<UseEqualsDefaultCheck>(123 "modernize-use-equals-default");124 CheckFactories.registerCheck<UseEqualsDeleteCheck>(125 "modernize-use-equals-delete");126 CheckFactories.registerCheck<UseNodiscardCheck>("modernize-use-nodiscard");127 CheckFactories.registerCheck<UseNoexceptCheck>("modernize-use-noexcept");128 CheckFactories.registerCheck<UseNullptrCheck>("modernize-use-nullptr");129 CheckFactories.registerCheck<UseOverrideCheck>("modernize-use-override");130 CheckFactories.registerCheck<UseTrailingReturnTypeCheck>(131 "modernize-use-trailing-return-type");132 CheckFactories.registerCheck<UseTransparentFunctorsCheck>(133 "modernize-use-transparent-functors");134 CheckFactories.registerCheck<UseUncaughtExceptionsCheck>(135 "modernize-use-uncaught-exceptions");136 CheckFactories.registerCheck<UseUsingCheck>("modernize-use-using");137 }138};139 140// Register the ModernizeTidyModule using this statically initialized variable.141static ClangTidyModuleRegistry::Add<ModernizeModule> X("modernize-module",142 "Add modernize checks.");143 144} // namespace modernize145 146// This anchor is used to force the linker to link in the generated object file147// and thus register the ModernizeModule.148// NOLINTNEXTLINE(misc-use-internal-linkage)149volatile int ModernizeModuleAnchorSource = 0;150 151} // namespace clang::tidy152