clang-tools 19.0.0git
ModernizeTidyModule.cpp
Go to the documentation of this file.
1//===--- ModernizeTidyModule.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 "AvoidBindCheck.h"
13#include "AvoidCArraysCheck.h"
17#include "LoopConvertCheck.h"
18#include "MacroToEnumCheck.h"
19#include "MakeSharedCheck.h"
20#include "MakeUniqueCheck.h"
21#include "PassByValueCheck.h"
24#include "ReplaceAutoPtrCheck.h"
28#include "ShrinkToFitCheck.h"
29#include "TypeTraitsCheck.h"
31#include "UseAutoCheck.h"
33#include "UseConstraintsCheck.h"
36#include "UseEmplaceCheck.h"
39#include "UseNodiscardCheck.h"
40#include "UseNoexceptCheck.h"
41#include "UseNullptrCheck.h"
42#include "UseOverrideCheck.h"
44#include "UseStdNumbersCheck.h"
45#include "UseStdPrintCheck.h"
49#include "UseUsingCheck.h"
50
51using namespace clang::ast_matchers;
52
53namespace clang::tidy {
54namespace modernize {
55
57public:
58 void addCheckFactories(ClangTidyCheckFactories &CheckFactories) override {
59 CheckFactories.registerCheck<AvoidBindCheck>("modernize-avoid-bind");
60 CheckFactories.registerCheck<AvoidCArraysCheck>("modernize-avoid-c-arrays");
62 "modernize-concat-nested-namespaces");
64 "modernize-deprecated-headers");
66 "modernize-deprecated-ios-base-aliases");
67 CheckFactories.registerCheck<LoopConvertCheck>("modernize-loop-convert");
68 CheckFactories.registerCheck<MacroToEnumCheck>("modernize-macro-to-enum");
69 CheckFactories.registerCheck<MakeSharedCheck>("modernize-make-shared");
70 CheckFactories.registerCheck<MakeUniqueCheck>("modernize-make-unique");
71 CheckFactories.registerCheck<PassByValueCheck>("modernize-pass-by-value");
73 "modernize-use-designated-initializers");
75 "modernize-use-starts-ends-with");
76 CheckFactories.registerCheck<UseStdNumbersCheck>(
77 "modernize-use-std-numbers");
78 CheckFactories.registerCheck<UseStdPrintCheck>("modernize-use-std-print");
80 "modernize-raw-string-literal");
82 "modernize-redundant-void-arg");
83 CheckFactories.registerCheck<ReplaceAutoPtrCheck>(
84 "modernize-replace-auto-ptr");
86 "modernize-replace-disallow-copy-and-assign-macro");
88 "modernize-replace-random-shuffle");
90 "modernize-return-braced-init-list");
91 CheckFactories.registerCheck<ShrinkToFitCheck>("modernize-shrink-to-fit");
92 CheckFactories.registerCheck<TypeTraitsCheck>("modernize-type-traits");
94 "modernize-unary-static-assert");
95 CheckFactories.registerCheck<UseAutoCheck>("modernize-use-auto");
96 CheckFactories.registerCheck<UseBoolLiteralsCheck>(
97 "modernize-use-bool-literals");
98 CheckFactories.registerCheck<UseConstraintsCheck>(
99 "modernize-use-constraints");
101 "modernize-use-default-member-init");
102 CheckFactories.registerCheck<UseEmplaceCheck>("modernize-use-emplace");
103 CheckFactories.registerCheck<UseEqualsDefaultCheck>("modernize-use-equals-default");
104 CheckFactories.registerCheck<UseEqualsDeleteCheck>(
105 "modernize-use-equals-delete");
106 CheckFactories.registerCheck<UseNodiscardCheck>(
107 "modernize-use-nodiscard");
108 CheckFactories.registerCheck<UseNoexceptCheck>("modernize-use-noexcept");
109 CheckFactories.registerCheck<UseNullptrCheck>("modernize-use-nullptr");
110 CheckFactories.registerCheck<UseOverrideCheck>("modernize-use-override");
112 "modernize-use-trailing-return-type");
114 "modernize-use-transparent-functors");
116 "modernize-use-uncaught-exceptions");
117 CheckFactories.registerCheck<UseUsingCheck>("modernize-use-using");
118 }
119};
120
121// Register the ModernizeTidyModule using this statically initialized variable.
122static ClangTidyModuleRegistry::Add<ModernizeModule> X("modernize-module",
123 "Add modernize checks.");
124
125} // namespace modernize
126
127// This anchor is used to force the linker to link in the generated object file
128// and thus register the ModernizeModule.
130
131} // namespace clang::tidy
int X
A collection of ClangTidyCheckFactory instances.
void registerCheck(llvm::StringRef CheckName)
Registers the CheckType with the name Name.
A clang-tidy module groups a number of ClangTidyChecks and gives them a prefixed name.
Replace simple uses of std::bind with a lambda.
Find C-style array types and recommend to use std::array<> / std::vector<>.
This check replaces deprecated C library headers with their C++ STL alternatives.
This check warns the uses of the deprecated member types of std::ios_base and replaces those that hav...
Replaces groups of related macros with an unscoped anonymous enum.
void addCheckFactories(ClangTidyCheckFactories &CheckFactories) override
Implement this function in order to register all CheckFactories belonging to this module.
This check replaces string literals with escaped characters to raw string literals.
Find and remove redundant void argument lists.
Transforms the deprecated std::auto_ptr into the C++11 std::unique_ptr.
This check finds macro expansions of DISALLOW_COPY_AND_ASSIGN(Type) and replaces them with a deleted ...
std::random_shuffle will be removed as of C++17.
Use a braced init list for return statements rather than unnecessary repeating the return type name.
Replace copy and swap tricks on shrinkable containers with the shrink_to_fit() method call.
Converts standard library type traits of the form traits<...>::type and traits<......
Replaces a static_assert declaration with an empty message with the unary version.
Finds integer literals which are cast to bool.
Replace enable_if with C++20 requires clauses.
Convert a default constructor's member initializers into default member initializers.
Finds initializer lists for aggregate type that could be written as designated initializers instead.
This check looks for cases when inserting new element into std::vector but the element is constructed...
Replace default bodies of special member functions with '= default;'.
Identifies unimplemented private special member functions, and recommends using = delete for them.
Add [[nodiscard]] to non-void const-member functions with no arguments or pass-by-value or pass by co...
Replace dynamic exception specifications, with noexcept (or user-defined macro) or noexcept(false).
Use C++11's override and remove virtual where applicable.
Checks whether a find or rfind result is compared with 0 and suggests replacing with starts_with when...
Finds constants and function calls to math functions that can be replaced with c++20's mathematical c...
Convert calls to printf-like functions to std::print and std::println.
Rewrites function signatures to use a trailing return type.
Prefer using transparent functors to non-transparent ones.
This check will warn on calls to std::uncaught_exception and replace them with calls to std::uncaught...
Check finds typedefs and replaces it with usings.
Definition: UseUsingCheck.h:20
volatile int ModernizeModuleAnchorSource