xref: /llvm-project/clang-tools-extra/clang-tidy/readability/ReadabilityTidyModule.cpp (revision 8dc7db7a24633f55ef28f2ab4b379386a34505f8)
1 //===--- ReadabilityTidyModule.cpp - clang-tidy ---------------------------===//
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-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #include "../ClangTidy.h"
10 #include "../ClangTidyModule.h"
11 #include "../ClangTidyModuleRegistry.h"
12 #include "AvoidConstParamsInDecls.h"
13 #include "AvoidNestedConditionalOperatorCheck.h"
14 #include "AvoidReturnWithVoidValueCheck.h"
15 #include "AvoidUnconditionalPreprocessorIfCheck.h"
16 #include "BracesAroundStatementsCheck.h"
17 #include "ConstReturnTypeCheck.h"
18 #include "ContainerContainsCheck.h"
19 #include "ContainerDataPointerCheck.h"
20 #include "ContainerSizeEmptyCheck.h"
21 #include "ConvertMemberFunctionsToStatic.h"
22 #include "DeleteNullPointerCheck.h"
23 #include "DuplicateIncludeCheck.h"
24 #include "ElseAfterReturnCheck.h"
25 #include "EnumInitialValueCheck.h"
26 #include "FunctionCognitiveComplexityCheck.h"
27 #include "FunctionSizeCheck.h"
28 #include "IdentifierLengthCheck.h"
29 #include "IdentifierNamingCheck.h"
30 #include "ImplicitBoolConversionCheck.h"
31 #include "InconsistentDeclarationParameterNameCheck.h"
32 #include "IsolateDeclarationCheck.h"
33 #include "MagicNumbersCheck.h"
34 #include "MakeMemberFunctionConstCheck.h"
35 #include "MathMissingParenthesesCheck.h"
36 #include "MisleadingIndentationCheck.h"
37 #include "MisplacedArrayIndexCheck.h"
38 #include "NamedParameterCheck.h"
39 #include "NonConstParameterCheck.h"
40 #include "OperatorsRepresentationCheck.h"
41 #include "QualifiedAutoCheck.h"
42 #include "RedundantAccessSpecifiersCheck.h"
43 #include "RedundantCastingCheck.h"
44 #include "RedundantControlFlowCheck.h"
45 #include "RedundantDeclarationCheck.h"
46 #include "RedundantFunctionPtrDereferenceCheck.h"
47 #include "RedundantInlineSpecifierCheck.h"
48 #include "RedundantMemberInitCheck.h"
49 #include "RedundantPreprocessorCheck.h"
50 #include "RedundantSmartptrGetCheck.h"
51 #include "RedundantStringCStrCheck.h"
52 #include "RedundantStringInitCheck.h"
53 #include "ReferenceToConstructedTemporaryCheck.h"
54 #include "SimplifyBooleanExprCheck.h"
55 #include "SimplifySubscriptExprCheck.h"
56 #include "StaticAccessedThroughInstanceCheck.h"
57 #include "StaticDefinitionInAnonymousNamespaceCheck.h"
58 #include "StringCompareCheck.h"
59 #include "SuspiciousCallArgumentCheck.h"
60 #include "UniqueptrDeleteReleaseCheck.h"
61 #include "UppercaseLiteralSuffixCheck.h"
62 #include "UseAnyOfAllOfCheck.h"
63 #include "UseStdMinMaxCheck.h"
64 
65 namespace clang::tidy {
66 namespace readability {
67 
68 class ReadabilityModule : public ClangTidyModule {
69 public:
addCheckFactories(ClangTidyCheckFactories & CheckFactories)70   void addCheckFactories(ClangTidyCheckFactories &CheckFactories) override {
71     CheckFactories.registerCheck<AvoidConstParamsInDecls>(
72         "readability-avoid-const-params-in-decls");
73     CheckFactories.registerCheck<AvoidNestedConditionalOperatorCheck>(
74         "readability-avoid-nested-conditional-operator");
75     CheckFactories.registerCheck<AvoidReturnWithVoidValueCheck>(
76         "readability-avoid-return-with-void-value");
77     CheckFactories.registerCheck<AvoidUnconditionalPreprocessorIfCheck>(
78         "readability-avoid-unconditional-preprocessor-if");
79     CheckFactories.registerCheck<BracesAroundStatementsCheck>(
80         "readability-braces-around-statements");
81     CheckFactories.registerCheck<ConstReturnTypeCheck>(
82         "readability-const-return-type");
83     CheckFactories.registerCheck<ContainerContainsCheck>(
84         "readability-container-contains");
85     CheckFactories.registerCheck<ContainerDataPointerCheck>(
86         "readability-container-data-pointer");
87     CheckFactories.registerCheck<ContainerSizeEmptyCheck>(
88         "readability-container-size-empty");
89     CheckFactories.registerCheck<ConvertMemberFunctionsToStatic>(
90         "readability-convert-member-functions-to-static");
91     CheckFactories.registerCheck<DeleteNullPointerCheck>(
92         "readability-delete-null-pointer");
93     CheckFactories.registerCheck<DuplicateIncludeCheck>(
94         "readability-duplicate-include");
95     CheckFactories.registerCheck<ElseAfterReturnCheck>(
96         "readability-else-after-return");
97     CheckFactories.registerCheck<EnumInitialValueCheck>(
98         "readability-enum-initial-value");
99     CheckFactories.registerCheck<FunctionCognitiveComplexityCheck>(
100         "readability-function-cognitive-complexity");
101     CheckFactories.registerCheck<FunctionSizeCheck>(
102         "readability-function-size");
103     CheckFactories.registerCheck<IdentifierLengthCheck>(
104         "readability-identifier-length");
105     CheckFactories.registerCheck<IdentifierNamingCheck>(
106         "readability-identifier-naming");
107     CheckFactories.registerCheck<ImplicitBoolConversionCheck>(
108         "readability-implicit-bool-conversion");
109     CheckFactories.registerCheck<MathMissingParenthesesCheck>(
110         "readability-math-missing-parentheses");
111     CheckFactories.registerCheck<RedundantInlineSpecifierCheck>(
112         "readability-redundant-inline-specifier");
113     CheckFactories.registerCheck<InconsistentDeclarationParameterNameCheck>(
114         "readability-inconsistent-declaration-parameter-name");
115     CheckFactories.registerCheck<IsolateDeclarationCheck>(
116         "readability-isolate-declaration");
117     CheckFactories.registerCheck<MagicNumbersCheck>(
118         "readability-magic-numbers");
119     CheckFactories.registerCheck<MakeMemberFunctionConstCheck>(
120         "readability-make-member-function-const");
121     CheckFactories.registerCheck<MisleadingIndentationCheck>(
122         "readability-misleading-indentation");
123     CheckFactories.registerCheck<MisplacedArrayIndexCheck>(
124         "readability-misplaced-array-index");
125     CheckFactories.registerCheck<OperatorsRepresentationCheck>(
126         "readability-operators-representation");
127     CheckFactories.registerCheck<QualifiedAutoCheck>(
128         "readability-qualified-auto");
129     CheckFactories.registerCheck<RedundantAccessSpecifiersCheck>(
130         "readability-redundant-access-specifiers");
131     CheckFactories.registerCheck<RedundantCastingCheck>(
132         "readability-redundant-casting");
133     CheckFactories.registerCheck<RedundantFunctionPtrDereferenceCheck>(
134         "readability-redundant-function-ptr-dereference");
135     CheckFactories.registerCheck<RedundantMemberInitCheck>(
136         "readability-redundant-member-init");
137     CheckFactories.registerCheck<RedundantPreprocessorCheck>(
138         "readability-redundant-preprocessor");
139     CheckFactories.registerCheck<ReferenceToConstructedTemporaryCheck>(
140         "readability-reference-to-constructed-temporary");
141     CheckFactories.registerCheck<SimplifySubscriptExprCheck>(
142         "readability-simplify-subscript-expr");
143     CheckFactories.registerCheck<StaticAccessedThroughInstanceCheck>(
144         "readability-static-accessed-through-instance");
145     CheckFactories.registerCheck<StaticDefinitionInAnonymousNamespaceCheck>(
146         "readability-static-definition-in-anonymous-namespace");
147     CheckFactories.registerCheck<StringCompareCheck>(
148         "readability-string-compare");
149     CheckFactories.registerCheck<readability::NamedParameterCheck>(
150         "readability-named-parameter");
151     CheckFactories.registerCheck<NonConstParameterCheck>(
152         "readability-non-const-parameter");
153     CheckFactories.registerCheck<RedundantControlFlowCheck>(
154         "readability-redundant-control-flow");
155     CheckFactories.registerCheck<RedundantDeclarationCheck>(
156         "readability-redundant-declaration");
157     CheckFactories.registerCheck<RedundantSmartptrGetCheck>(
158         "readability-redundant-smartptr-get");
159     CheckFactories.registerCheck<RedundantStringCStrCheck>(
160         "readability-redundant-string-cstr");
161     CheckFactories.registerCheck<RedundantStringInitCheck>(
162         "readability-redundant-string-init");
163     CheckFactories.registerCheck<SimplifyBooleanExprCheck>(
164         "readability-simplify-boolean-expr");
165     CheckFactories.registerCheck<SuspiciousCallArgumentCheck>(
166         "readability-suspicious-call-argument");
167     CheckFactories.registerCheck<UniqueptrDeleteReleaseCheck>(
168         "readability-uniqueptr-delete-release");
169     CheckFactories.registerCheck<UppercaseLiteralSuffixCheck>(
170         "readability-uppercase-literal-suffix");
171     CheckFactories.registerCheck<UseAnyOfAllOfCheck>(
172         "readability-use-anyofallof");
173     CheckFactories.registerCheck<UseStdMinMaxCheck>(
174         "readability-use-std-min-max");
175   }
176 };
177 
178 // Register the ReadabilityModule using this statically initialized variable.
179 static ClangTidyModuleRegistry::Add<ReadabilityModule>
180     X("readability-module", "Adds readability-related checks.");
181 
182 } // namespace readability
183 
184 // This anchor is used to force the linker to link in the generated object file
185 // and thus register the ReadabilityModule.
186 volatile int ReadabilityModuleAnchorSource = 0;
187 
188 } // namespace clang::tidy
189