comparison clang-tools-extra/docs/ReleaseNotes.rst @ 252:1f2b6ac9f198 llvm-original

LLVM16-1
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Fri, 18 Aug 2023 09:04:13 +0900
parents c4bab56944e8
children
comparison
equal deleted inserted replaced
237:c80f45b162ad 252:1f2b6ac9f198
79 ^^^^^^^^^^^^^ 79 ^^^^^^^^^^^^^
80 80
81 Improvements to clang-doc 81 Improvements to clang-doc
82 ------------------------- 82 -------------------------
83 83
84 - The default executor was changed to standalone to match other tools.
85
86 Improvements to clang-query 84 Improvements to clang-query
87 --------------------------- 85 ---------------------------
88 86
89 The improvements are... 87 The improvements are...
90 88
94 The improvements are... 92 The improvements are...
95 93
96 Improvements to clang-tidy 94 Improvements to clang-tidy
97 -------------------------- 95 --------------------------
98 96
97 - Preprocessor-level module header parsing is now disabled by default due to
98 the problems it caused in C++20 and above, leading to performance and code
99 parsing issues regardless of whether modules were used or not. This change
100 will impact only the following checks:
101 :doc:`modernize-replace-disallow-copy-and-assign-macro
102 <clang-tidy/checks/modernize/replace-disallow-copy-and-assign-macro>`,
103 :doc:`bugprone-reserved-identifier
104 <clang-tidy/checks/bugprone/reserved-identifier>`, and
105 :doc:`readability-identifier-naming
106 <clang-tidy/checks/readability/identifier-naming>`. Those checks will no
107 longer see macros defined in modules. Users can still enable this
108 functionality using the newly added command line option
109 `--enable-module-headers-parsing`.
110
111 - Remove configuration option `AnalyzeTemporaryDestructors`, which was deprecated since
112 :program:`clang-tidy` 16.
113
114 - Improved `--dump-config` to print check options in alphabetical order.
115
99 New checks 116 New checks
100 ^^^^^^^^^^ 117 ^^^^^^^^^^
101 118
102 - New :doc:`bugprone-suspicious-realloc-usage 119 - New :doc:`bugprone-inc-dec-in-conditions
103 <clang-tidy/checks/bugprone/suspicious-realloc-usage>` check. 120 <clang-tidy/checks/bugprone/inc-dec-in-conditions>` check.
104 121
105 Finds usages of ``realloc`` where the return value is assigned to the 122 Detects when a variable is both incremented/decremented and referenced inside
106 same expression as passed to the first argument. 123 a complex condition and suggests moving them outside to avoid ambiguity in
107 124 the variable's value.
108 - New :doc:`cppcoreguidelines-avoid-const-or-ref-data-members 125
109 <clang-tidy/checks/cppcoreguidelines/avoid-const-or-ref-data-members>` check. 126 - New :doc:`bugprone-multi-level-implicit-pointer-conversion
110 127 <clang-tidy/checks/bugprone/multi-level-implicit-pointer-conversion>` check.
111 Warns when a struct or class uses const or reference (lvalue or rvalue) data members. 128
112 129 Detects implicit conversions between pointers of different levels of
113 - New :doc:`cppcoreguidelines-avoid-do-while 130 indirection.
114 <clang-tidy/checks/cppcoreguidelines/avoid-do-while>` check. 131
115 132 - New :doc:`bugprone-optional-value-conversion
116 Warns when using ``do-while`` loops. 133 <clang-tidy/checks/bugprone/optional-value-conversion>` check.
134
135 Detects potentially unintentional and redundant conversions where a value is
136 extracted from an optional-like type and then used to create a new instance
137 of the same optional-like type.
138
139 - New :doc:`cppcoreguidelines-no-suspend-with-lock
140 <clang-tidy/checks/cppcoreguidelines/no-suspend-with-lock>` check.
141
142 Flags coroutines that suspend while a lock guard is in scope at the
143 suspension point.
144
145 - New :doc:`modernize-use-constraints
146 <clang-tidy/checks/modernize/use-constraints>` check.
147
148 Replace ``enable_if`` with C++20 requires clauses.
149
150 - New :doc:`performance-enum-size
151 <clang-tidy/checks/performance/enum-size>` check.
152
153 Recommends the smallest possible underlying type for an ``enum`` or ``enum``
154 class based on the range of its enumerators.
155
156 - New :doc:`readability-reference-to-constructed-temporary
157 <clang-tidy/checks/readability/reference-to-constructed-temporary>` check.
158
159 Detects C++ code where a reference variable is used to extend the lifetime
160 of a temporary object that has just been constructed.
117 161
118 New check aliases 162 New check aliases
119 ^^^^^^^^^^^^^^^^^ 163 ^^^^^^^^^^^^^^^^^
120 164
121 - New alias :doc:`cert-msc54-cpp 165 - New alias :doc:`cppcoreguidelines-macro-to-enum
122 <clang-tidy/checks/cert/msc54-cpp>` to 166 <clang-tidy/checks/cppcoreguidelines/macro-to-enum>` to :doc:`modernize-macro-to-enum
123 :doc:`bugprone-signal-handler 167 <clang-tidy/checks/modernize/macro-to-enum>` was added.
124 <clang-tidy/checks/bugprone/signal-handler>` was added.
125
126 168
127 Changes in existing checks 169 Changes in existing checks
128 ^^^^^^^^^^^^^^^^^^^^^^^^^^ 170 ^^^^^^^^^^^^^^^^^^^^^^^^^^
129 171
130 - Fixed a false positive in :doc:`bugprone-assignment-in-if-condition 172 - Fixed bug in :doc:`bugprone-reserved-identifier
131 <clang-tidy/checks/bugprone/assignment-in-if-condition>` check when there 173 <clang-tidy/checks/bugprone/reserved-identifier>`, so that it does not warn
132 was an assignement in a lambda found in the condition of an ``if``. 174 on macros starting with underscore and lowercase letter.
133 175
134 - Improved :doc:`bugprone-signal-handler 176 - Improved :doc:`cppcoreguidelines-avoid-non-const-global-variables
135 <clang-tidy/checks/bugprone/signal-handler>` check. Partial 177 <clang-tidy/checks/cppcoreguidelines/avoid-non-const-global-variables>` check
136 support for C++14 signal handler rules was added. Bug report generation was 178 to ignore ``static`` variables declared within the scope of
137 improved. 179 ``class``/``struct``.
138 180
139 - Fixed a false positive in :doc:`cppcoreguidelines-pro-type-member-init 181 - Improved :doc:`cppcoreguidelines-prefer-member-initializer
140 <clang-tidy/checks/cppcoreguidelines/pro-type-member-init>` when warnings 182 <clang-tidy/checks/cppcoreguidelines/prefer-member-initializer>` check to
141 would be emitted for uninitialized members of an anonymous union despite 183 ignore delegate constructors.
142 there being an initializer for one of the other members. 184
143 185 - Improved :doc:`cppcoreguidelines-pro-type-member-init
144 - Improved :doc:`modernize-use-emplace <clang-tidy/checks/modernize/use-emplace>` 186 <clang-tidy/checks/cppcoreguidelines/pro-type-member-init>` check to ignore
145 check. 187 dependent delegate constructors.
146 188
147 The check now supports detecting inefficient invocations of ``push`` and 189 - Improved :doc:`cppcoreguidelines-pro-type-vararg
148 ``push_front`` on STL-style containers and replacing them with ``emplace`` 190 <clang-tidy/checks/cppcoreguidelines/pro-type-vararg>` check to ignore
149 or ``emplace_front``. 191 false-positives in unevaluated context (e.g., ``decltype``, ``sizeof``, ...).
150 192
151 The check now supports detecting alias cases of ``push_back`` ``push`` and 193 - Improved :doc:`llvm-namespace-comment
152 ``push_front`` on STL-style containers and replacing them with ``emplace_back``, 194 <clang-tidy/checks/llvm/namespace-comment>` check to provide fixes for
153 ``emplace`` or ``emplace_front``. 195 ``inline`` namespaces in the same format as :program:`clang-format`.
154 196
155 - Improved :doc:`modernize-use-equals-default <clang-tidy/checks/modernize/use-equals-default>` 197 - Improved :doc:`misc-include-cleaner
156 check. 198 <clang-tidy/checks/misc/include-cleaner>` check by adding option
157 199 `DeduplicateFindings` to output one finding per symbol occurence.
158 The check now skips unions/union-like classes since in this case a default constructor 200
159 with empty body is not equivalent to the explicitly defaulted one, variadic constructors 201 - Improved :doc:`modernize-loop-convert
160 since they cannot be explicitly defaulted. The check also skips copy assignment operators 202 <clang-tidy/checks/modernize/loop-convert>` to support for-loops with
161 with nonstandard return types, template constructors, private/protected default constructors 203 iterators initialized by free functions like ``begin``, ``end``, or ``size``.
162 for C++17 or earlier. The automatic fixit has been adjusted to avoid adding superfluous 204
163 semicolon. The check is restricted to C++11 or later. 205 - Improved :doc:`performance-faster-string-find
164 206 <clang-tidy/checks/performance/faster-string-find>` check to properly escape
165 - Change the default behavior of :doc:`readability-avoid-const-params-in-decls 207 single quotes.
166 <clang-tidy/checks/readability/avoid-const-params-in-decls>` to not 208
167 warn about `const` value parameters of declarations inside macros. 209 - Improved :doc:`performanc-noexcept-swap
168 210 <clang-tidy/checks/performance/noexcept-swap>` check to enforce a stricter
169 - Fixed crashes in :doc:`readability-braces-around-statements 211 match with the swap function signature, eliminating false-positives.
170 <clang-tidy/checks/readability/braces-around-statements>` and 212
171 :doc:`readability-simplify-boolean-expr <clang-tidy/checks/readability/simplify-boolean-expr>` 213 - Improved :doc:`readability-identifier-naming
172 when using a C++23 ``if consteval`` statement. 214 <clang-tidy/checks/readability/identifier-naming>` check to emit proper
173 215 warnings when a type forward declaration precedes its definition.
174 - Improved :doc:`misc-redundant-expression <clang-tidy/checks/misc/redundant-expression>` 216
175 check. 217 - Improved :doc:`readability-implicit-bool-conversion
176 218 <clang-tidy/checks/readability/implicit-bool-conversion>` check to take
177 The check now skips concept definitions since redundant expressions still make sense 219 do-while loops into account for the `AllowIntegerConditions` and
178 inside them. 220 `AllowPointerConditions` options.
179 221
180 Removed checks 222 Removed checks
181 ^^^^^^^^^^^^^^ 223 ^^^^^^^^^^^^^^
182 224
183 Improvements to include-fixer 225 Improvements to include-fixer