@@ -58,9 +58,6 @@ Semantic Highlighting
5858Compile flags
5959^^^^^^^^^^^^^
6060
61- - Added `BuiltinHeaders ` config key which controls whether clangd's built-in
62- headers are used or ones extracted from the driver.
63-
6461Hover
6562^^^^^
6663
@@ -93,301 +90,18 @@ Improvements to clang-query
9390 arguments. So when porting a query to C++, remove all instances of trailing
9491 comma (otherwise C++ compiler will just complain about "expected expression").
9592
96- Improvements to include-cleaner
97- -------------------------------
98- - Deprecated the ``-insert `` and ``-remove `` command line options, and added
99- the ``-disable-remove `` and ``-disable-insert `` command line options as
100- replacements. The previous command line options were confusing because they
101- did not imply the default state of the option (which is inserts and removes
102- being enabled). The new options are easier to understand the semantics of.
103-
10493Improvements to clang-tidy
10594--------------------------
10695
107- - Changed the :program: `check_clang_tidy.py ` tool to use FileCheck's
108- ``--match-full-lines `` instead of ``strict-whitespace `` for ``CHECK-FIXES ``
109- clauses. Added a ``--match-partial-fixes `` option to keep previous behavior on
110- specific tests. This may break tests for users with custom out-of-tree checks
111- who use :program: `check_clang_tidy.py ` as-is.
112-
113- - Improved :program: `clang-tidy-diff.py ` script. Add the `-warnings-as-errors `
114- argument to treat warnings as errors.
115-
116- - Improved :program: `clang-tidy ` to show `CheckOptions ` only for checks enabled
117- in `Checks ` when running ``--dump-config ``.
118-
119- - Fixed bug in :program: `clang-tidy ` by which `HeaderFilterRegex ` did not take
120- effect when passed via the `.clang-tidy ` file.
121-
122- - Fixed bug in :program: `run_clang_tidy.py ` where the program would not
123- correctly display the checks enabled by the top-level `.clang-tidy ` file.
124-
12596New checks
12697^^^^^^^^^^
12798
128- - New :doc: `bugprone-capturing-this-in-member-variable
129- <clang-tidy/checks/bugprone/capturing-this-in-member-variable>` check.
130-
131- Finds lambda captures and ``bind `` function calls that capture the ``this ``
132- pointer and store it as class members without handle the copy and move
133- constructors and the assignments.
134-
135- - New :doc: `bugprone-misleading-setter-of-reference
136- <clang-tidy/checks/bugprone/misleading-setter-of-reference>` check.
137-
138- Finds setter-like member functions that take a pointer parameter and set a
139- reference member of the same class with the pointed value.
140-
141- - New :doc: `bugprone-unintended-char-ostream-output
142- <clang-tidy/checks/bugprone/unintended-char-ostream-output>` check.
143-
144- Finds unintended character output from ``unsigned char `` and ``signed char ``
145- to an ``ostream ``.
146-
147- - New :doc: `cppcoreguidelines-use-enum-class
148- <clang-tidy/checks/cppcoreguidelines/use-enum-class>` check.
149-
150- Finds unscoped (non-class) ``enum `` declarations and suggests using
151- ``enum class `` instead.
152-
153- - New :doc: `llvm-prefer-static-over-anonymous-namespace
154- <clang-tidy/checks/llvm/prefer-static-over-anonymous-namespace>` check.
155-
156- Finds function and variable declarations inside anonymous namespace and
157- suggests replacing them with ``static `` declarations.
158-
159- - New :doc: `modernize-use-scoped-lock
160- <clang-tidy/checks/modernize/use-scoped-lock>` check.
161-
162- Finds uses of ``std::lock_guard `` and suggests replacing them with C++17's
163- alternative ``std::scoped_lock ``.
164-
165- - New :doc: `portability-avoid-pragma-once
166- <clang-tidy/checks/portability/avoid-pragma-once>` check.
167-
168- Finds uses of ``#pragma once `` and suggests replacing them with standard
169- include guards (``#ifndef ``/``#define ``/``#endif ``) for improved portability.
170-
171- - New :doc: `readability-ambiguous-smartptr-reset-call
172- <clang-tidy/checks/readability/ambiguous-smartptr-reset-call>` check.
173-
174- Finds potentially erroneous calls to ``reset `` method on smart pointers when
175- the pointee type also has a ``reset `` method.
176-
177- - New :doc: `readability-use-concise-preprocessor-directives
178- <clang-tidy/checks/readability/use-concise-preprocessor-directives>` check.
179-
180- Finds uses of ``#if `` that can be simplified to ``#ifdef `` or ``#ifndef `` and,
181- since C23 and C++23, uses of ``#elif `` that can be simplified to ``#elifdef ``
182- or ``#elifndef ``.
183-
18499New check aliases
185100^^^^^^^^^^^^^^^^^
186101
187102Changes in existing checks
188103^^^^^^^^^^^^^^^^^^^^^^^^^^
189104
190- - Improved :doc: `bugprone-crtp-constructor-accessibility
191- <clang-tidy/checks/bugprone/crtp-constructor-accessibility>` check by fixing
192- false positives on deleted constructors that cannot be used to construct
193- objects, even if they have public or protected access.
194-
195- - Improved :doc: `bugprone-exception-escape
196- <clang-tidy/checks/bugprone/exception-escape>` check to print stack trace
197- of a potentially escaped exception.
198-
199- - Added an option to :doc: `bugprone-multi-level-implicit-pointer-conversion
200- <clang-tidy/checks/bugprone/multi-level-implicit-pointer-conversion>` to
201- choose whether to enable the check in C code or not.
202-
203- - Improved :doc: `bugprone-optional-value-conversion
204- <clang-tidy/checks/bugprone/optional-value-conversion>` check to detect
205- conversion in argument of ``std::make_optional ``.
206-
207- - Improved :doc: `bugprone-sizeof-expression
208- <clang-tidy/checks/bugprone/sizeof-expression>` check by adding
209- `WarnOnSizeOfInLoopTermination ` option to detect misuses of ``sizeof ``
210- expression in loop conditions.
211-
212- - Improved :doc: `bugprone-string-constructor
213- <clang-tidy/checks/bugprone/string-constructor>` check to find suspicious
214- calls of ``std::string `` constructor with char pointer, start position and
215- length parameters.
216-
217- - Improved :doc: `bugprone-unchecked-optional-access
218- <clang-tidy/checks/bugprone/unchecked-optional-access>` fixing false
219- positives from smart pointer accessors repeated in checking ``has_value ``
220- and accessing ``value ``. The option `IgnoreSmartPointerDereference ` should
221- no longer be needed and will be removed. Also fixing false positive from
222- const reference accessors to objects containing optional member.
223-
224- - Improved :doc: `bugprone-unsafe-functions
225- <clang-tidy/checks/bugprone/unsafe-functions>` check to allow specifying
226- additional C++ member functions to match.
227-
228- - Improved :doc: `cert-err33-c
229- <clang-tidy/checks/cert/err33-c>` check by fixing false positives when
230- a function name is just prefixed with a targeted function name.
231-
232- - Improved :doc: `concurrency-mt-unsafe
233- <clang-tidy/checks/concurrency/mt-unsafe>` check by fixing a false positive
234- where ``strerror `` was flagged as MT-unsafe.
235-
236- - Improved :doc: `cppcoreguidelines-avoid-goto
237- <clang-tidy/checks/cppcoreguidelines/avoid-goto>` check by adding the option
238- `IgnoreMacros ` to ignore ``goto `` labels defined in macros.
239-
240- - Improved :doc: `cppcoreguidelines-interfaces-global-init
241- <clang-tidy/checks/cppcoreguidelines/interfaces-global-init>` check by
242- fixing false positives on uses of ``constinit `` variables.
243-
244- - Improved :doc: `cppcoreguidelines-missing-std-forward
245- <clang-tidy/checks/cppcoreguidelines/missing-std-forward>` check by adding a
246- flag to specify the function used for forwarding instead of ``std::forward ``.
247-
248- - Improved :doc: `cppcoreguidelines-pro-bounds-pointer-arithmetic
249- <clang-tidy/checks/cppcoreguidelines/pro-bounds-pointer-arithmetic>` check by
250- fixing false positives when calling indexing operators that do not perform
251- pointer arithmetic in template, for example ``std::map::operator[] `` and
252- when pointer arithmetic was used through type aliases.
253-
254- - Improved :doc: `cppcoreguidelines-rvalue-reference-param-not-moved
255- <clang-tidy/checks/cppcoreguidelines/rvalue-reference-param-not-moved>` check
256- by adding a flag to specify the function used for moving instead of
257- ``std::move ``.
258-
259- - Improved :doc: `cppcoreguidelines-special-member-functions
260- <clang-tidy/checks/cppcoreguidelines/special-member-functions>` check by
261- adding the option `IgnoreMacros ` to ignore classes defined in macros.
262-
263- - Improved :doc: `google-readability-namespace-comments
264- <clang-tidy/checks/google/readability-namespace-comments>` check by adding
265- the option `AllowOmittingNamespaceComments ` to accept if a namespace comment
266- is omitted entirely.
267-
268- - Improved :doc: `hicpp-avoid-goto
269- <clang-tidy/checks/hicpp/avoid-goto>` check by adding the option
270- `IgnoreMacros ` to ignore ``goto `` labels defined in macros.
271-
272- - Improved :doc: `hicpp-special-member-functions
273- <clang-tidy/checks/hicpp/special-member-functions>` check by adding the
274- option `IgnoreMacros ` to ignore classes defined in macros.
275-
276- - Improved :doc: `llvm-namespace-comment
277- <clang-tidy/checks/llvm/namespace-comment>` check by adding the option
278- `AllowOmittingNamespaceComments ` to accept if a namespace comment is omitted
279- entirely.
280-
281- - Improved :doc: `misc-const-correctness
282- <clang-tidy/checks/misc/const-correctness>` check by adding the option
283- `AllowedTypes `, that excludes specified types from const-correctness
284- checking and fixing false positives when modifying variant by ``operator[] ``
285- with template in parameters and supporting to check pointee mutation by
286- `AnalyzePointers ` option and fixing false positives when using const array
287- type.
288-
289- - Improved :doc: `misc-include-cleaner
290- <clang-tidy/checks/misc/include-cleaner>` check by adding the options
291- `UnusedIncludes ` and `MissingIncludes `, which specify whether the check should
292- report unused or missing includes respectively.
293-
294- - Improved :doc: `misc-redundant-expression
295- <clang-tidy/checks/misc/redundant-expression>` check by providing additional
296- examples and fixing some macro related false positives.
297-
298- - Improved :doc: `misc-unconventional-assign-operator
299- <clang-tidy/checks/misc/unconventional-assign-operator>` check by fixing
300- false positives when copy assignment operator function in a template class
301- returns the result of another assignment to ``*this `` (``return *this=... ``).
302-
303- - Improved :doc: `misc-unused-using-decls
304- <clang-tidy/checks/misc/unused-using-decls>` check by fixing false positives
305- on ``operator"" `` with template parameters.
306-
307- - Improved :doc: `misc-use-internal-linkage
308- <clang-tidy/checks/misc/use-internal-linkage>` check by fix false positives
309- for function or variable in header file which contains macro expansion and
310- excluding variables with ``thread_local `` storage class specifier from being
311- matched.
312-
313- - Improved :doc: `modernize-pass-by-value
314- <clang-tidy/checks/modernize/pass-by-value>` check by fixing false positives
315- when class passed by const-reference had a private move constructor.
316-
317- - Improved :doc: `modernize-type-traits
318- <clang-tidy/checks/modernize/type-traits>` check by detecting more type traits.
319-
320- - Improved :doc: `modernize-use-default-member-init
321- <clang-tidy/checks/modernize/use-default-member-init>` check by matching
322- arithmetic operations, ``constexpr `` and ``static `` values, and detecting
323- explicit casting of built-in types within member list initialization.
324-
325- - Improved :doc: `modernize-use-designated-initializers
326- <clang-tidy/checks/modernize/use-designated-initializers>` check by avoiding
327- diagnosing designated initializers for ``std::array `` initializations.
328-
329- - Improved :doc: `modernize-use-ranges
330- <clang-tidy/checks/modernize/use-ranges>` check by updating suppress
331- warnings logic for ``nullptr `` in ``std::find ``.
332-
333- - Improved :doc: `modernize-use-starts-ends-with
334- <clang-tidy/checks/modernize/use-starts-ends-with>` check by adding more
335- matched scenarios of ``find `` and ``rfind `` methods and fixing false
336- positives when those methods were called with 3 arguments.
337-
338- - Improved :doc: `modernize-use-std-numbers
339- <clang-tidy/checks/modernize/use-std-numbers>` check to support math
340- functions of different precisions.
341-
342- - Improved :doc: `modernize-use-trailing-return-type
343- <clang-tidy/checks/modernize/use-trailing-return-type>` check by adding
344- support to modernize lambda signatures to use trailing return type and adding
345- two new options: `TransformFunctions ` and `TransformLambdas ` to control
346- whether function declarations and lambdas should be transformed by the check.
347- Fixed false positives when lambda was matched as a function in C++11 mode.
348-
349- - Improved :doc: `performance-move-const-arg
350- <clang-tidy/checks/performance/move-const-arg>` check by fixing false
351- negatives on ternary operators calling ``std::move ``.
352-
353- - Improved :doc: `performance-unnecessary-value-param
354- <clang-tidy/checks/performance/unnecessary-value-param>` check performance by
355- tolerating fix-it breaking compilation when functions is used as pointers
356- to avoid matching usage of functions within the current compilation unit.
357- Added an option `IgnoreCoroutines ` with the default value `true ` to
358- suppress this check for coroutines where passing by reference may be unsafe.
359-
360- - Improved :doc: `readability-convert-member-functions-to-static
361- <clang-tidy/checks/readability/convert-member-functions-to-static>` check by
362- fixing false positives on member functions with an explicit object parameter.
363-
364- - Improved :doc: `readability-function-size
365- <clang-tidy/checks/readability/function-size>` check by adding new option
366- `CountMemberInitAsStmt ` that allows counting class member initializers in
367- constructors as statements.
368-
369- - Improved :doc: `readability-math-missing-parentheses
370- <clang-tidy/checks/readability/math-missing-parentheses>` check by fixing
371- false negatives where math expressions are the operand of assignment operators
372- or comparison operators.
373-
374- - Improved :doc: `readability-named-parameter
375- <clang-tidy/checks/readability/named-parameter>` check by adding the option
376- `InsertPlainNamesInForwardDecls ` to insert parameter names without comments
377- for forward declarations only.
378-
379- - Improved :doc: `readability-qualified-auto
380- <clang-tidy/checks/readability/qualified-auto>` check by adding the option
381- `AllowedTypes `, that excludes specified types from adding qualifiers.
382-
383- - Improved :doc: `readability-redundant-inline-specifier
384- <clang-tidy/checks/readability/redundant-inline-specifier>` check by fixing
385- false positives on out-of-line explicitly defaulted functions.
386-
387- - Improved :doc: `readability-redundant-smartptr-get
388- <clang-tidy/checks/readability/redundant-smartptr-get>` check by fixing
389- some false positives involving smart pointers to arrays.
390-
391105Removed checks
392106^^^^^^^^^^^^^^
393107
@@ -414,3 +128,4 @@ Improvements to pp-trace
414128
415129Clang-tidy Visual Studio plugin
416130-------------------------------
131+
0 commit comments