@@ -53,7 +53,6 @@ Inlay hints
53
53
54
54
Diagnostics
55
55
^^^^^^^^^^^
56
- - Improved Fix-its of some clang-tidy checks when applied with clangd.
57
56
58
57
Semantic Highlighting
59
58
^^^^^^^^^^^^^^^^^^^^^
@@ -97,178 +96,15 @@ The improvements are...
97
96
Improvements to clang-tidy
98
97
--------------------------
99
98
100
- - Added trace code to help narrow down any checks and the relevant source code
101
- that result in crashes.
102
-
103
- - Clang-tidy now consideres newlines as separators of single elements in the `Checks ` section in
104
- `.clang-tidy ` configuration files. Where previously a comma had to be used to distinguish elements in
105
- this list from each other, newline characters now also work as separators in the parsed YAML. That
106
- means it is advised to use YAML's block style initiated by the pipe character `| ` for the `Checks `
107
- section in order to benefit from the easier syntax that works without commas.
108
-
109
- - Fixed a regression introduced in clang-tidy 14.0.0, which prevented NOLINTs
110
- from suppressing diagnostics associated with macro arguments. This fixes
111
- `Issue 55134 <https://github.com/llvm/llvm-project/issues/55134 >`_.
112
-
113
- - Added an option -verify-config which will check the config file to ensure each
114
- `Checks ` and `CheckOptions ` entries are recognised.
115
-
116
- - .clang-tidy files can now use the more natural dictionary syntax for specifying `CheckOptions `.
117
-
118
99
New checks
119
100
^^^^^^^^^^
120
101
121
- - New :doc: `bugprone-shared-ptr-array-mismatch <clang-tidy/checks/bugprone/shared-ptr-array-mismatch >` check.
122
-
123
- Finds initializations of C++ shared pointers to non-array type that are initialized with an array.
124
-
125
- - New :doc: `bugprone-unchecked-optional-access
126
- <clang-tidy/checks/bugprone/unchecked-optional-access>` check.
127
-
128
- Warns when the code is unwrapping a `std::optional<T> `, `absl::optional<T> `,
129
- or `base::Optional<T> ` object without assuring that it contains a value.
130
-
131
- - New :doc: `misc-confusable-identifiers <clang-tidy/checks/misc/confusable-identifiers >` check.
132
-
133
- Detects confusable Unicode identifiers.
134
-
135
- - New :doc: `bugprone-assignment-in-if-condition
136
- <clang-tidy/checks/bugprone/assignment-in-if-condition>` check.
137
-
138
- Warns when there is an assignment within an if statement condition expression.
139
-
140
- - New :doc: `misc-const-correctness
141
- <clang-tidy/checks/misc/const-correctness>` check.
142
-
143
- Detects unmodified local variables and suggest adding ``const `` if the transformation is possible.
144
-
145
- - New :doc: `modernize-macro-to-enum
146
- <clang-tidy/checks/modernize/macro-to-enum>` check.
147
-
148
- Replaces groups of adjacent macros with an unscoped anonymous enum.
149
-
150
- - New :doc: `portability-std-allocator-const <clang-tidy/checks/portability/std-allocator-const >` check.
151
-
152
- Report use of ``std::vector<const T> `` (and similar containers of const
153
- elements). These are not allowed in standard C++ due to undefined
154
- ``std::allocator<const T> ``. They do not compile with libstdc++ or MSVC.
155
- Future libc++ will remove the extension (`D120996
156
- <https://reviews.llvm.org/D120996> `).
157
-
158
102
New check aliases
159
103
^^^^^^^^^^^^^^^^^
160
104
161
- - New alias :doc: `cppcoreguidelines-macro-to-enum
162
- <clang-tidy/checks/cppcoreguidelines/macro-to-enum>` to :doc: `modernize-macro-to-enum
163
- <clang-tidy/checks/modernize/macro-to-enum>` was added.
164
-
165
105
Changes in existing checks
166
106
^^^^^^^^^^^^^^^^^^^^^^^^^^
167
107
168
- - Fixed nonsensical suggestion of :doc: `altera-struct-pack-align
169
- <clang-tidy/checks/altera/struct-pack-align>` check for empty structs.
170
-
171
- - Fixed a false positive in :doc: `bugprone-branch-clone
172
- <clang-tidy/checks/bugprone/branch-clone>` when the branches
173
- involve unknown expressions.
174
-
175
- - Fixed some false positives in :doc: `bugprone-infinite-loop
176
- <clang-tidy/checks/bugprone/infinite-loop>` involving dependent expressions.
177
-
178
- - Fixed a crash in :doc: `bugprone-sizeof-expression
179
- <clang-tidy/checks/bugprone/sizeof-expression>` when `sizeof(...) ` is
180
- compared against a `__int128_t `.
181
-
182
- - Fixed bugs in :doc: `bugprone-use-after-move
183
- <clang-tidy/checks/bugprone/use-after-move>`:
184
-
185
- - Treat a move in a lambda capture as happening in the function that defines
186
- the lambda, not within the body of the lambda (as we were previously doing
187
- erroneously).
188
-
189
- - Don't emit an erroneous warning on self-moves.
190
-
191
- - Improved :doc: `cert-dcl58-cpp
192
- <clang-tidy/checks/cert/dcl58-cpp>` check.
193
-
194
- The check now detects explicit template specializations that are handled specially.
195
-
196
- - Made :doc: `cert-oop57-cpp <clang-tidy/checks/cert/oop57-cpp >` more sensitive
197
- by checking for an arbitrary expression in the second argument of ``memset ``.
198
-
199
- - Made the fix-it of :doc: `cppcoreguidelines-init-variables
200
- <clang-tidy/checks/cppcoreguidelines/init-variables>` use ``false `` to initialize
201
- boolean variables.
202
-
203
- - Improved :doc: `cppcoreguidelines-prefer-member-initializer
204
- <clang-tidy/checks/cppcoreguidelines/prefer-member-initializer>` check.
205
-
206
- Fixed an issue when there was already an initializer in the constructor and
207
- the check would try to create another initializer for the same member.
208
-
209
- - Fixed a false positive in :doc: `cppcoreguidelines-virtual-class-destructor
210
- <clang-tidy/checks/cppcoreguidelines/virtual-class-destructor>` involving
211
- ``final `` classes. The check will not diagnose classes marked ``final ``, since
212
- those cannot be used as base classes, consequently, they can not violate the
213
- rule.
214
-
215
- - Fixed a crash in :doc: `llvmlibc-callee-namespace
216
- <clang-tidy/checks/llvmlibc/callee-namespace>` when executing for C++ code
217
- that contain calls to advanced constructs, e.g. overloaded operators.
218
-
219
- - Fixed false positives in :doc: `misc-redundant-expression
220
- <clang-tidy/checks/misc/redundant-expression>`:
221
-
222
- - Fixed a false positive involving overloaded comparison operators.
223
-
224
- - Fixed a false positive involving assignments in
225
- conditions. This fixes `Issue 35853 <https://github.com/llvm/llvm-project/issues/35853 >`_.
226
-
227
- - Fixed a false positive in :doc: `misc-unused-parameters
228
- <clang-tidy/checks/misc/unused-parameters>`
229
- where invalid parameters were implicitly being treated as being unused.
230
- This fixes `Issue 56152 <https://github.com/llvm/llvm-project/issues/56152 >`_.
231
-
232
- - Fixed false positives in :doc: `misc-unused-using-decls
233
- <clang-tidy/checks/misc/unused-using-decls>` where `using ` statements bringing
234
- operators into the scope where incorrectly marked as unused.
235
- This fixes `issue 55095 <https://github.com/llvm/llvm-project/issues/55095 >`_.
236
-
237
- - Fixed a false positive in :doc: `modernize-deprecated-headers
238
- <clang-tidy/checks/modernize/deprecated-headers>` involving including
239
- C header files from C++ files wrapped by ``extern "C" { ... } `` blocks.
240
- Such includes will be ignored by now.
241
- By default now it doesn't warn for including deprecated headers from header
242
- files, since that header file might be used from C source files. By passing
243
- the ``CheckHeaderFile=true `` option if header files of the project only
244
- included by C++ source files.
245
-
246
- - Improved :doc: `performance-inefficient-vector-operation
247
- <clang-tidy/checks/performance/inefficient-vector-operation>` to work when
248
- the vector is a member of a structure.
249
-
250
- - Fixed a crash in :doc: `performance-unnecessary-value-param
251
- <clang-tidy/checks/performance/unnecessary-value-param>` when the specialization
252
- template has an unnecessary value parameter. Removed the fix for a template.
253
-
254
- - Fixed a crash in :doc: `readability-const-return-type
255
- <clang-tidy/checks/readability/const-return-type>` when a pure virtual function
256
- overrided has a const return type. Removed the fix for a virtual function.
257
-
258
- - Skipped addition of extra parentheses around member accesses (``a.b ``) in fix-it for
259
- :doc: `readability-container-data-pointer <clang-tidy/checks/readability/container-data-pointer >`.
260
-
261
- - Fixed incorrect suggestions for :doc: `readability-container-size-empty
262
- <clang-tidy/checks/readability/container-size-empty>` when smart pointers are involved.
263
-
264
- - Fixed a false positive in :doc: `readability-non-const-parameter
265
- <clang-tidy/checks/readability/non-const-parameter>` when the parameter is
266
- referenced by an lvalue.
267
-
268
- - Expanded :doc: `readability-simplify-boolean-expr
269
- <clang-tidy/checks/readability/simplify-boolean-expr>` to simplify expressions
270
- using DeMorgan's Theorem.
271
-
272
108
Removed checks
273
109
^^^^^^^^^^^^^^
274
110
@@ -290,7 +126,5 @@ The improvements are...
290
126
Improvements to pp-trace
291
127
------------------------
292
128
293
- - Added `HashLoc ` information to `InclusionDirective ` callback output.
294
-
295
129
Clang-tidy Visual Studio plugin
296
130
-------------------------------
0 commit comments