clang-tools 20.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"
22#include "PassByValueCheck.h"
25#include "ReplaceAutoPtrCheck.h"
29#include "ShrinkToFitCheck.h"
30#include "TypeTraitsCheck.h"
32#include "UseAutoCheck.h"
34#include "UseConstraintsCheck.h"
37#include "UseEmplaceCheck.h"
40#include "UseNodiscardCheck.h"
41#include "UseNoexceptCheck.h"
42#include "UseNullptrCheck.h"
43#include "UseOverrideCheck.h"
44#include "UseRangesCheck.h"
46#include "UseStdFormatCheck.h"
47#include "UseStdNumbersCheck.h"
48#include "UseStdPrintCheck.h"
52#include "UseUsingCheck.h"
53
54using namespace clang::ast_matchers;
55
56namespace clang::tidy {
57namespace modernize {
58
60public:
61 void addCheckFactories(ClangTidyCheckFactories &CheckFactories) override {
62 CheckFactories.registerCheck<AvoidBindCheck>("modernize-avoid-bind");
63 CheckFactories.registerCheck<AvoidCArraysCheck>("modernize-avoid-c-arrays");
65 "modernize-concat-nested-namespaces");
67 "modernize-deprecated-headers");
69 "modernize-deprecated-ios-base-aliases");
70 CheckFactories.registerCheck<LoopConvertCheck>("modernize-loop-convert");
71 CheckFactories.registerCheck<MacroToEnumCheck>("modernize-macro-to-enum");
72 CheckFactories.registerCheck<MakeSharedCheck>("modernize-make-shared");
73 CheckFactories.registerCheck<MakeUniqueCheck>("modernize-make-unique");
75 "modernize-min-max-use-initializer-list");
76 CheckFactories.registerCheck<PassByValueCheck>("modernize-pass-by-value");
78 "modernize-use-designated-initializers");
79 CheckFactories.registerCheck<UseRangesCheck>("modernize-use-ranges");
81 "modernize-use-starts-ends-with");
82 CheckFactories.registerCheck<UseStdFormatCheck>("modernize-use-std-format");
83 CheckFactories.registerCheck<UseStdNumbersCheck>(
84 "modernize-use-std-numbers");
85 CheckFactories.registerCheck<UseStdPrintCheck>("modernize-use-std-print");
87 "modernize-raw-string-literal");
89 "modernize-redundant-void-arg");
90 CheckFactories.registerCheck<ReplaceAutoPtrCheck>(
91 "modernize-replace-auto-ptr");
93 "modernize-replace-disallow-copy-and-assign-macro");
95 "modernize-replace-random-shuffle");
97 "modernize-return-braced-init-list");
98 CheckFactories.registerCheck<ShrinkToFitCheck>("modernize-shrink-to-fit");
99 CheckFactories.registerCheck<TypeTraitsCheck>("modernize-type-traits");
101 "modernize-unary-static-assert");
102 CheckFactories.registerCheck<UseAutoCheck>("modernize-use-auto");
103 CheckFactories.registerCheck<UseBoolLiteralsCheck>(
104 "modernize-use-bool-literals");
105 CheckFactories.registerCheck<UseConstraintsCheck>(
106 "modernize-use-constraints");
108 "modernize-use-default-member-init");
109 CheckFactories.registerCheck<UseEmplaceCheck>("modernize-use-emplace");
110 CheckFactories.registerCheck<UseEqualsDefaultCheck>("modernize-use-equals-default");
111 CheckFactories.registerCheck<UseEqualsDeleteCheck>(
112 "modernize-use-equals-delete");
113 CheckFactories.registerCheck<UseNodiscardCheck>(
114 "modernize-use-nodiscard");
115 CheckFactories.registerCheck<UseNoexceptCheck>("modernize-use-noexcept");
116 CheckFactories.registerCheck<UseNullptrCheck>("modernize-use-nullptr");
117 CheckFactories.registerCheck<UseOverrideCheck>("modernize-use-override");
119 "modernize-use-trailing-return-type");
121 "modernize-use-transparent-functors");
123 "modernize-use-uncaught-exceptions");
124 CheckFactories.registerCheck<UseUsingCheck>("modernize-use-using");
125 }
126};
127
128// Register the ModernizeTidyModule using this statically initialized variable.
129static ClangTidyModuleRegistry::Add<ModernizeModule> X("modernize-module",
130 "Add modernize checks.");
131
132} // namespace modernize
133
134// This anchor is used to force the linker to link in the generated object file
135// and thus register the ModernizeModule.
137
138} // 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.
Replaces nested std::min and std::max calls with an initializer list where applicable.
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.
Detects calls to standard library iterator algorithms that could be replaced with a ranges version in...
Checks for common roundabout ways to express starts_with and ends_with and suggests replacing with st...
Converts calls to absl::StrFormat, or other functions via configuration options, to C++20's std::form...
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