103 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 "ConfusableIdentifierCheck.h"13#include "ConstCorrectnessCheck.h"14#include "CoroutineHostileRAIICheck.h"15#include "DefinitionsInHeadersCheck.h"16#include "HeaderIncludeCycleCheck.h"17#include "IncludeCleanerCheck.h"18#include "MisleadingBidirectionalCheck.h"19#include "MisleadingIdentifierCheck.h"20#include "MisplacedConstCheck.h"21#include "NewDeleteOverloadsCheck.h"22#include "NoRecursionCheck.h"23#include "NonCopyableObjectsCheck.h"24#include "NonPrivateMemberVariablesInClassesCheck.h"25#include "OverrideWithDifferentVisibilityCheck.h"26#include "PredictableRandCheck.h"27#include "RedundantExpressionCheck.h"28#include "StaticAssertCheck.h"29#include "ThrowByValueCatchByReferenceCheck.h"30#include "UnconventionalAssignOperatorCheck.h"31#include "UniqueptrResetReleaseCheck.h"32#include "UnusedAliasDeclsCheck.h"33#include "UnusedParametersCheck.h"34#include "UnusedUsingDeclsCheck.h"35#include "UseAnonymousNamespaceCheck.h"36#include "UseInternalLinkageCheck.h"37 38namespace clang::tidy {39namespace misc {40 41class MiscModule : public ClangTidyModule {42public:43 void addCheckFactories(ClangTidyCheckFactories &CheckFactories) override {44 CheckFactories.registerCheck<ConfusableIdentifierCheck>(45 "misc-confusable-identifiers");46 CheckFactories.registerCheck<ConstCorrectnessCheck>(47 "misc-const-correctness");48 CheckFactories.registerCheck<CoroutineHostileRAIICheck>(49 "misc-coroutine-hostile-raii");50 CheckFactories.registerCheck<DefinitionsInHeadersCheck>(51 "misc-definitions-in-headers");52 CheckFactories.registerCheck<HeaderIncludeCycleCheck>(53 "misc-header-include-cycle");54 CheckFactories.registerCheck<IncludeCleanerCheck>("misc-include-cleaner");55 CheckFactories.registerCheck<MisleadingBidirectionalCheck>(56 "misc-misleading-bidirectional");57 CheckFactories.registerCheck<MisleadingIdentifierCheck>(58 "misc-misleading-identifier");59 CheckFactories.registerCheck<MisplacedConstCheck>("misc-misplaced-const");60 CheckFactories.registerCheck<NewDeleteOverloadsCheck>(61 "misc-new-delete-overloads");62 CheckFactories.registerCheck<NoRecursionCheck>("misc-no-recursion");63 CheckFactories.registerCheck<NonCopyableObjectsCheck>(64 "misc-non-copyable-objects");65 CheckFactories.registerCheck<NonPrivateMemberVariablesInClassesCheck>(66 "misc-non-private-member-variables-in-classes");67 CheckFactories.registerCheck<OverrideWithDifferentVisibilityCheck>(68 "misc-override-with-different-visibility");69 CheckFactories.registerCheck<PredictableRandCheck>("misc-predictable-rand");70 CheckFactories.registerCheck<RedundantExpressionCheck>(71 "misc-redundant-expression");72 CheckFactories.registerCheck<StaticAssertCheck>("misc-static-assert");73 CheckFactories.registerCheck<ThrowByValueCatchByReferenceCheck>(74 "misc-throw-by-value-catch-by-reference");75 CheckFactories.registerCheck<UnconventionalAssignOperatorCheck>(76 "misc-unconventional-assign-operator");77 CheckFactories.registerCheck<UniqueptrResetReleaseCheck>(78 "misc-uniqueptr-reset-release");79 CheckFactories.registerCheck<UnusedAliasDeclsCheck>(80 "misc-unused-alias-decls");81 CheckFactories.registerCheck<UnusedParametersCheck>(82 "misc-unused-parameters");83 CheckFactories.registerCheck<UnusedUsingDeclsCheck>(84 "misc-unused-using-decls");85 CheckFactories.registerCheck<UseAnonymousNamespaceCheck>(86 "misc-use-anonymous-namespace");87 CheckFactories.registerCheck<UseInternalLinkageCheck>(88 "misc-use-internal-linkage");89 }90};91 92} // namespace misc93 94// Register the MiscTidyModule using this statically initialized variable.95static ClangTidyModuleRegistry::Add<misc::MiscModule>96 X("misc-module", "Adds miscellaneous lint checks.");97 98// This anchor is used to force the linker to link in the generated object file99// and thus register the MiscModule.100volatile int MiscModuleAnchorSource = 0; // NOLINT(misc-use-internal-linkage)101 102} // namespace clang::tidy103