Bump trunk version to 19.0.0git
This commit is contained in:
parent
93248729cf
commit
987087df90
@ -69,9 +69,6 @@ Code completion
|
||||
Code actions
|
||||
^^^^^^^^^^^^
|
||||
|
||||
- The extract variable tweak gained support for extracting lambda expressions to a variable.
|
||||
- A new tweak was added for turning unscoped into scoped enums.
|
||||
|
||||
Signature help
|
||||
^^^^^^^^^^^^^^
|
||||
|
||||
@ -100,467 +97,15 @@ The improvements are...
|
||||
Improvements to clang-tidy
|
||||
--------------------------
|
||||
|
||||
- Preprocessor-level module header parsing is now disabled by default due to
|
||||
the problems it caused in C++20 and above, leading to performance and code
|
||||
parsing issues regardless of whether modules were used or not. This change
|
||||
will impact only the following checks:
|
||||
:doc:`modernize-replace-disallow-copy-and-assign-macro
|
||||
<clang-tidy/checks/modernize/replace-disallow-copy-and-assign-macro>`,
|
||||
:doc:`bugprone-reserved-identifier
|
||||
<clang-tidy/checks/bugprone/reserved-identifier>`, and
|
||||
:doc:`readability-identifier-naming
|
||||
<clang-tidy/checks/readability/identifier-naming>`. Those checks will no
|
||||
longer see macros defined in modules. Users can still enable this
|
||||
functionality using the newly added command line option
|
||||
`--enable-module-headers-parsing`.
|
||||
|
||||
- Remove configuration option `AnalyzeTemporaryDestructors`, which was deprecated since
|
||||
:program:`clang-tidy` 16.
|
||||
|
||||
- Improved `--dump-config` to print check options in alphabetical order.
|
||||
|
||||
- Improved :program:`clang-tidy-diff.py` script.
|
||||
* Return exit code `1` if any :program:`clang-tidy` subprocess exits with
|
||||
a non-zero code or if exporting fixes fails.
|
||||
|
||||
* Accept a directory as a value for `-export-fixes` to export individual
|
||||
yaml files for each compilation unit.
|
||||
|
||||
* Introduce a `-config-file` option that forwards a configuration file to
|
||||
:program:`clang-tidy`. Corresponds to the `--config-file` option in
|
||||
:program:`clang-tidy`.
|
||||
|
||||
- Improved :program:`run-clang-tidy.py` script. It now accepts a directory
|
||||
as a value for `-export-fixes` to export individual yaml files for each
|
||||
compilation unit.
|
||||
|
||||
|
||||
New checks
|
||||
^^^^^^^^^^
|
||||
|
||||
- New :doc:`bugprone-casting-through-void
|
||||
<clang-tidy/checks/bugprone/casting-through-void>` check.
|
||||
|
||||
Detects unsafe or redundant two-step casting operations involving ``void*``.
|
||||
|
||||
- New :doc:`bugprone-chained-comparison
|
||||
<clang-tidy/checks/bugprone/chained-comparison>` check.
|
||||
|
||||
Check detects chained comparison operators that can lead to unintended
|
||||
behavior or logical errors.
|
||||
|
||||
- New :doc:`bugprone-compare-pointer-to-member-virtual-function
|
||||
<clang-tidy/checks/bugprone/compare-pointer-to-member-virtual-function>` check.
|
||||
|
||||
Detects equality comparison between pointer to member virtual function and
|
||||
anything other than null-pointer-constant.
|
||||
|
||||
- New :doc:`bugprone-inc-dec-in-conditions
|
||||
<clang-tidy/checks/bugprone/inc-dec-in-conditions>` check.
|
||||
|
||||
Detects when a variable is both incremented/decremented and referenced inside
|
||||
a complex condition and suggests moving them outside to avoid ambiguity in
|
||||
the variable's value.
|
||||
|
||||
- New :doc:`bugprone-incorrect-enable-if
|
||||
<clang-tidy/checks/bugprone/incorrect-enable-if>` check.
|
||||
|
||||
Detects incorrect usages of ``std::enable_if`` that don't name the nested
|
||||
``type`` type.
|
||||
|
||||
- New :doc:`bugprone-multi-level-implicit-pointer-conversion
|
||||
<clang-tidy/checks/bugprone/multi-level-implicit-pointer-conversion>` check.
|
||||
|
||||
Detects implicit conversions between pointers of different levels of
|
||||
indirection.
|
||||
|
||||
- New :doc:`bugprone-optional-value-conversion
|
||||
<clang-tidy/checks/bugprone/optional-value-conversion>` check.
|
||||
|
||||
Detects potentially unintentional and redundant conversions where a value is
|
||||
extracted from an optional-like type and then used to create a new instance
|
||||
of the same optional-like type.
|
||||
|
||||
- New :doc:`bugprone-unused-local-non-trivial-variable
|
||||
<clang-tidy/checks/bugprone/unused-local-non-trivial-variable>` check.
|
||||
|
||||
Warns when a local non trivial variable is unused within a function.
|
||||
|
||||
- New :doc:`cppcoreguidelines-no-suspend-with-lock
|
||||
<clang-tidy/checks/cppcoreguidelines/no-suspend-with-lock>` check.
|
||||
|
||||
Flags coroutines that suspend while a lock guard is in scope at the
|
||||
suspension point.
|
||||
|
||||
- New :doc:`hicpp-ignored-remove-result
|
||||
<clang-tidy/checks/hicpp/ignored-remove-result>` check.
|
||||
|
||||
Ensure that the result of ``std::remove``, ``std::remove_if`` and
|
||||
``std::unique`` are not ignored according to rule 17.5.1.
|
||||
|
||||
- New :doc:`misc-coroutine-hostile-raii
|
||||
<clang-tidy/checks/misc/coroutine-hostile-raii>` check.
|
||||
|
||||
Detects when objects of certain hostile RAII types persists across suspension
|
||||
points in a coroutine. Such hostile types include scoped-lockable types and
|
||||
types belonging to a configurable denylist.
|
||||
|
||||
- New :doc:`modernize-use-constraints
|
||||
<clang-tidy/checks/modernize/use-constraints>` check.
|
||||
|
||||
Replace ``enable_if`` with C++20 requires clauses.
|
||||
|
||||
- New :doc:`modernize-use-starts-ends-with
|
||||
<clang-tidy/checks/modernize/use-starts-ends-with>` check.
|
||||
|
||||
Checks whether a ``find`` or ``rfind`` result is compared with 0 and suggests
|
||||
replacing with ``starts_with`` when the method exists in the class. Notably,
|
||||
this will work with ``std::string`` and ``std::string_view``.
|
||||
|
||||
- New :doc:`modernize-use-std-numbers
|
||||
<clang-tidy/checks/modernize/use-std-numbers>` check.
|
||||
|
||||
Finds constants and function calls to math functions that can be replaced
|
||||
with C++20's mathematical constants from the ``numbers`` header and
|
||||
offers fix-it hints.
|
||||
|
||||
- New :doc:`performance-enum-size
|
||||
<clang-tidy/checks/performance/enum-size>` check.
|
||||
|
||||
Recommends the smallest possible underlying type for an ``enum`` or ``enum``
|
||||
class based on the range of its enumerators.
|
||||
|
||||
- New :doc:`readability-avoid-nested-conditional-operator
|
||||
<clang-tidy/checks/readability/avoid-nested-conditional-operator>` check.
|
||||
|
||||
Identifies instances of nested conditional operators in the code.
|
||||
|
||||
- New :doc:`readability-avoid-return-with-void-value
|
||||
<clang-tidy/checks/readability/avoid-return-with-void-value>` check.
|
||||
|
||||
Finds return statements with ``void`` values used within functions with
|
||||
``void`` result types.
|
||||
|
||||
- New :doc:`readability-redundant-casting
|
||||
<clang-tidy/checks/readability/redundant-casting>` check.
|
||||
|
||||
Detects explicit type casting operations that involve the same source and
|
||||
destination types, and subsequently recommend their removal.
|
||||
|
||||
- New :doc:`readability-redundant-inline-specifier
|
||||
<clang-tidy/checks/readability/redundant-inline-specifier>` check.
|
||||
|
||||
Detects redundant ``inline`` specifiers on function and variable declarations.
|
||||
|
||||
- New :doc:`readability-reference-to-constructed-temporary
|
||||
<clang-tidy/checks/readability/reference-to-constructed-temporary>` check.
|
||||
|
||||
Detects C++ code where a reference variable is used to extend the lifetime
|
||||
of a temporary object that has just been constructed.
|
||||
|
||||
New check aliases
|
||||
^^^^^^^^^^^^^^^^^
|
||||
|
||||
- New alias :doc:`cppcoreguidelines-macro-to-enum
|
||||
<clang-tidy/checks/cppcoreguidelines/macro-to-enum>` to :doc:`modernize-macro-to-enum
|
||||
<clang-tidy/checks/modernize/macro-to-enum>` was added.
|
||||
|
||||
Changes in existing checks
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
- Improved :doc:`abseil-string-find-startswith
|
||||
<clang-tidy/checks/abseil/string-find-startswith>` check to also consider
|
||||
``std::basic_string_view`` in addition to ``std::basic_string`` by default.
|
||||
|
||||
- Improved :doc:`bugprone-assert-side-effect
|
||||
<clang-tidy/checks/bugprone/assert-side-effect>` check to report usage of
|
||||
non-const ``<<`` and ``>>`` operators in assertions and fixed some false-positives
|
||||
with const operators.
|
||||
|
||||
- Improved :doc:`bugprone-dangling-handle
|
||||
<clang-tidy/checks/bugprone/dangling-handle>` check to support functional
|
||||
casting during type conversions at variable initialization, now with improved
|
||||
compatibility for C++17 and later versions.
|
||||
|
||||
- Improved :doc:`bugprone-exception-escape
|
||||
<clang-tidy/checks/bugprone/exception-escape>` check by extending the default
|
||||
check function names to include ``iter_swap`` and ``iter_move``.
|
||||
|
||||
- Improved :doc:`bugprone-implicit-widening-of-multiplication-result
|
||||
<clang-tidy/checks/bugprone/implicit-widening-of-multiplication-result>` check
|
||||
to correctly emit fixes.
|
||||
|
||||
- Improved :doc:`bugprone-lambda-function-name
|
||||
<clang-tidy/checks/bugprone/lambda-function-name>` check by adding option
|
||||
`IgnoreMacros` to ignore warnings in macros.
|
||||
|
||||
- Improved :doc:`bugprone-non-zero-enum-to-bool-conversion
|
||||
<clang-tidy/checks/bugprone/non-zero-enum-to-bool-conversion>` check by
|
||||
eliminating false positives resulting from direct usage of bitwise operators.
|
||||
|
||||
- Improved :doc:`bugprone-reserved-identifier
|
||||
<clang-tidy/checks/bugprone/reserved-identifier>` check, so that it does not
|
||||
warn on macros starting with underscore and lowercase letter.
|
||||
|
||||
- Improved :doc:`bugprone-sizeof-expression
|
||||
<clang-tidy/checks/bugprone/sizeof-expression>` check diagnostics to precisely
|
||||
highlight specific locations, providing more accurate guidance.
|
||||
|
||||
- Improved :doc:`bugprone-unchecked-optional-access
|
||||
<clang-tidy/checks/bugprone/unchecked-optional-access>` check, so that it does
|
||||
not crash during handling of optional values.
|
||||
|
||||
- Improved :doc:`bugprone-undefined-memory-manipulation
|
||||
<clang-tidy/checks/bugprone/undefined-memory-manipulation>` check to support
|
||||
fixed-size arrays of non-trivial types.
|
||||
|
||||
- Improved :doc:`bugprone-unused-return-value
|
||||
<clang-tidy/checks/bugprone/unused-return-value>` check diagnostic message,
|
||||
added support for detection of unused results when cast to non-``void`` type.
|
||||
Casting to ``void`` no longer suppresses issues by default, control this
|
||||
behavior with the new `AllowCastToVoid` option.
|
||||
|
||||
- Improved :doc:`cppcoreguidelines-avoid-non-const-global-variables
|
||||
<clang-tidy/checks/cppcoreguidelines/avoid-non-const-global-variables>` check
|
||||
to ignore ``static`` variables declared within the scope of
|
||||
``class``/``struct``.
|
||||
|
||||
- Improved :doc:`cppcoreguidelines-avoid-reference-coroutine-parameters
|
||||
<clang-tidy/checks/cppcoreguidelines/avoid-reference-coroutine-parameters>`
|
||||
check to ignore false positives related to matching parameters of non
|
||||
coroutine functions and increase issue detection for cases involving type
|
||||
aliases with references.
|
||||
|
||||
- Improved :doc:`cppcoreguidelines-missing-std-forward
|
||||
<clang-tidy/checks/cppcoreguidelines/missing-std-forward>` check to
|
||||
address false positives in the capture list and body of lambdas.
|
||||
|
||||
- Improved :doc:`cppcoreguidelines-narrowing-conversions
|
||||
<clang-tidy/checks/cppcoreguidelines/narrowing-conversions>` check by
|
||||
extending the `IgnoreConversionFromTypes` option to include types without a
|
||||
declaration, such as built-in types.
|
||||
|
||||
- Improved :doc:`cppcoreguidelines-prefer-member-initializer
|
||||
<clang-tidy/checks/cppcoreguidelines/prefer-member-initializer>` check to
|
||||
ignore delegate constructors and ignore re-assignment for reference or when
|
||||
initialization depend on field that is initialized before. Additionally, it
|
||||
now provides valid fixes for member variables initialized with macros.
|
||||
|
||||
- Improved :doc:`cppcoreguidelines-pro-bounds-array-to-pointer-decay
|
||||
<clang-tidy/checks/cppcoreguidelines/pro-bounds-array-to-pointer-decay>` check
|
||||
to ignore predefined expression (e.g., ``__func__``, ...).
|
||||
|
||||
- Improved :doc:`cppcoreguidelines-pro-bounds-constant-array-index
|
||||
<clang-tidy/checks/cppcoreguidelines/pro-bounds-constant-array-index>` check
|
||||
to perform checks on derived classes of ``std::array``.
|
||||
|
||||
- Improved :doc:`cppcoreguidelines-pro-type-const-cast
|
||||
<clang-tidy/checks/cppcoreguidelines/pro-type-const-cast>` check to ignore
|
||||
casts to ``const`` or ``volatile`` type (controlled by `StrictMode` option)
|
||||
and casts in implicitly invoked code.
|
||||
|
||||
- Improved :doc:`cppcoreguidelines-pro-type-member-init
|
||||
<clang-tidy/checks/cppcoreguidelines/pro-type-member-init>` check to ignore
|
||||
dependent delegate constructors.
|
||||
|
||||
- Improved :doc:`cppcoreguidelines-pro-type-static-cast-downcast
|
||||
<clang-tidy/checks/cppcoreguidelines/pro-type-static-cast-downcast>` check to
|
||||
disregard casts on non-polymorphic types when the `StrictMode` option is set
|
||||
to `false`.
|
||||
|
||||
- Improved :doc:`cppcoreguidelines-pro-type-vararg
|
||||
<clang-tidy/checks/cppcoreguidelines/pro-type-vararg>` check to ignore
|
||||
false-positives in unevaluated context (e.g., ``decltype``, ``sizeof``, ...).
|
||||
|
||||
- Improved :doc:`cppcoreguidelines-rvalue-reference-param-not-moved
|
||||
<clang-tidy/checks/cppcoreguidelines/rvalue-reference-param-not-moved>` check
|
||||
to ignore unused parameters when they are marked as unused and parameters of
|
||||
deleted functions and constructors.
|
||||
|
||||
- Improved :doc:`google-readability-casting
|
||||
<clang-tidy/checks/google/readability-casting>` check to ignore constructor
|
||||
calls disguised as functional casts.
|
||||
|
||||
- Improved :doc:`google-runtime-int <clang-tidy/checks/google/runtime-int>`
|
||||
check to ignore false positives on user defined-literals.
|
||||
|
||||
- Improved :doc:`llvm-namespace-comment
|
||||
<clang-tidy/checks/llvm/namespace-comment>` check to provide fixes for
|
||||
``inline`` namespaces in the same format as :program:`clang-format`.
|
||||
|
||||
- Improved :doc:`llvmlibc-callee-namespace
|
||||
<clang-tidy/checks/llvmlibc/callee-namespace>` to support
|
||||
customizable namespace. This matches the change made to implementation in
|
||||
namespace.
|
||||
|
||||
- Improved :doc:`llvmlibc-implementation-in-namespace
|
||||
<clang-tidy/checks/llvmlibc/implementation-in-namespace>` to support
|
||||
customizable namespace. This further allows for testing the libc when the
|
||||
system-libc is also LLVM's libc.
|
||||
|
||||
- Improved :doc:`llvmlibc-inline-function-decl
|
||||
<clang-tidy/checks/llvmlibc/inline-function-decl>` to properly ignore implicit
|
||||
functions, such as struct constructors, and explicitly deleted functions.
|
||||
|
||||
- Improved :doc:`misc-const-correctness
|
||||
<clang-tidy/checks/misc/const-correctness>` check to avoid false positive when
|
||||
using pointer to member function. Additionally, the check no longer emits
|
||||
a diagnostic when a variable that is not type-dependent is an operand of a
|
||||
type-dependent binary operator. Improved performance of the check through
|
||||
optimizations. The check no longer emits a diagnostic for non-parameter-pack
|
||||
variables in C++17 fold expressions.
|
||||
|
||||
- Improved :doc:`misc-include-cleaner
|
||||
<clang-tidy/checks/misc/include-cleaner>` check by adding option
|
||||
`DeduplicateFindings` to output one finding per symbol occurrence, avoid
|
||||
inserting the same header multiple times, fix a bug where `IgnoreHeaders`
|
||||
option won't work with verbatim/std headers.
|
||||
|
||||
- Improved :doc:`misc-redundant-expression
|
||||
<clang-tidy/checks/misc/redundant-expression>` check to ignore
|
||||
false-positives in unevaluated context (e.g., ``decltype``).
|
||||
|
||||
- Improved :doc:`misc-static-assert
|
||||
<clang-tidy/checks/misc/static-assert>` check to ignore false-positives when
|
||||
referring to non-``constexpr`` variables in non-unevaluated context.
|
||||
|
||||
- Improved :doc:`misc-unused-using-decls
|
||||
<clang-tidy/checks/misc/unused-using-decls>` check to avoid false positive when
|
||||
using in elaborated type and only check C++ files.
|
||||
|
||||
- Improved :doc:`modernize-avoid-bind
|
||||
<clang-tidy/checks/modernize/avoid-bind>` check to
|
||||
not emit a ``return`` for fixes when the function returns ``void`` and to
|
||||
provide valid fixes for cases involving bound C++ operators.
|
||||
|
||||
- Improved :doc:`modernize-loop-convert
|
||||
<clang-tidy/checks/modernize/loop-convert>` to support for-loops with
|
||||
iterators initialized by free functions like ``begin``, ``end``, or ``size``
|
||||
and avoid crash for array of dependent array and non-dereferenceable builtin
|
||||
types used as iterators.
|
||||
|
||||
- Improved :doc:`modernize-make-shared
|
||||
<clang-tidy/checks/modernize/make-shared>` check to support
|
||||
``std::shared_ptr`` implementations that inherit the ``reset`` method from a
|
||||
base class.
|
||||
|
||||
- Improved :doc:`modernize-return-braced-init-list
|
||||
<clang-tidy/checks/modernize/return-braced-init-list>` check to ignore
|
||||
false-positives when constructing the container with ``count`` copies of
|
||||
elements with value ``value``.
|
||||
|
||||
- Improved :doc:`modernize-use-auto
|
||||
<clang-tidy/checks/modernize/use-auto>` to avoid create incorrect fix hints
|
||||
for pointer to array type and pointer to function type.
|
||||
|
||||
- Improved :doc:`modernize-use-emplace
|
||||
<clang-tidy/checks/modernize/use-emplace>` to not replace aggregates that
|
||||
``emplace`` cannot construct with aggregate initialization.
|
||||
|
||||
- Improved :doc:`modernize-use-equals-delete
|
||||
<clang-tidy/checks/modernize/use-equals-delete>` check to ignore
|
||||
false-positives when special member function is actually used or implicit.
|
||||
|
||||
- Improved :doc:`modernize-use-nullptr
|
||||
<clang-tidy/checks/modernize/use-nullptr>` check by adding option
|
||||
`IgnoredTypes` that can be used to exclude some pointer types.
|
||||
|
||||
- Improved :doc:`modernize-use-std-print
|
||||
<clang-tidy/checks/modernize/use-std-print>` check to accurately generate
|
||||
fixes for reordering arguments.
|
||||
|
||||
- Improved :doc:`modernize-use-using
|
||||
<clang-tidy/checks/modernize/use-using>` check to fix function pointer and
|
||||
forward declared ``typedef`` correctly. Added option `IgnoreExternC` to ignore
|
||||
``typedef`` declaration in ``extern "C"`` scope.
|
||||
|
||||
- Improved :doc:`performance-faster-string-find
|
||||
<clang-tidy/checks/performance/faster-string-find>` check to properly escape
|
||||
single quotes.
|
||||
|
||||
- Improved :doc:`performance-for-range-copy
|
||||
<clang-tidy/checks/performance/for-range-copy>` check to handle cases where
|
||||
the loop variable is a structured binding.
|
||||
|
||||
- Improved :doc:`performance-noexcept-move-constructor
|
||||
<clang-tidy/checks/performance/noexcept-move-constructor>` to better handle
|
||||
conditional ``noexcept`` expressions, eliminating false-positives.
|
||||
|
||||
- Improved :doc:`performance-noexcept-swap
|
||||
<clang-tidy/checks/performance/noexcept-swap>` check to enforce a stricter
|
||||
match with the swap function signature and better handling of condition
|
||||
``noexcept`` expressions, eliminating false-positives. ``iter_swap`` function
|
||||
name is checked by default.
|
||||
|
||||
- Improved :doc:`readability-braces-around-statements
|
||||
<clang-tidy/checks/readability/braces-around-statements>` check to
|
||||
ignore false-positive for ``if constexpr`` in lambda expression.
|
||||
|
||||
- Improved :doc:`readability-avoid-const-params-in-decls
|
||||
<clang-tidy/checks/readability/avoid-const-params-in-decls>` diagnostics to
|
||||
highlight the ``const`` location
|
||||
|
||||
- Improved :doc:`readability-container-contains
|
||||
<clang-tidy/checks/readability/container-contains>` to correctly handle
|
||||
integer literals with suffixes in fix-its.
|
||||
|
||||
- Improved :doc:`readability-container-size-empty
|
||||
<clang-tidy/checks/readability/container-size-empty>` check to
|
||||
detect comparison between string and empty string literals and support
|
||||
``length()`` method as an alternative to ``size()``. Resolved false positives
|
||||
tied to negative values from size-like methods, and one triggered by size
|
||||
checks below zero.
|
||||
|
||||
- Improved :doc:`readability-function-size
|
||||
<clang-tidy/checks/readability/function-size>` check configuration to use
|
||||
`none` rather than `-1` to disable some parameters.
|
||||
|
||||
- Improved :doc:`readability-identifier-naming
|
||||
<clang-tidy/checks/readability/identifier-naming>` check to issue accurate
|
||||
warnings when a type's forward declaration precedes its definition.
|
||||
Additionally, it now provides appropriate warnings for ``struct`` and
|
||||
``union`` in C, while also incorporating support for the
|
||||
``Leading_upper_snake_case`` naming convention. The handling of ``typedef``
|
||||
has been enhanced, particularly within complex types like function pointers
|
||||
and cases where style checks were omitted when functions started with macros.
|
||||
Added support for C++20 ``concept`` declarations. ``Camel_Snake_Case`` and
|
||||
``camel_Snake_Case`` now detect more invalid identifier names. Fields in
|
||||
anonymous records (i.e. anonymous structs and unions) now can be checked with
|
||||
the naming rules associated with their enclosing scopes rather than the naming
|
||||
rules of public ``struct``/``union`` members.
|
||||
|
||||
- Improved :doc:`readability-implicit-bool-conversion
|
||||
<clang-tidy/checks/readability/implicit-bool-conversion>` check to take
|
||||
do-while loops into account for the `AllowIntegerConditions` and
|
||||
`AllowPointerConditions` options. It also now provides more consistent
|
||||
suggestions when parentheses are added to the return value or expressions.
|
||||
It also ignores false-positives for comparison containing bool bitfield.
|
||||
|
||||
- Improved :doc:`readability-misleading-indentation
|
||||
<clang-tidy/checks/readability/misleading-indentation>` check to ignore
|
||||
false-positives for line started with empty macro.
|
||||
|
||||
- Improved :doc:`readability-non-const-parameter
|
||||
<clang-tidy/checks/readability/non-const-parameter>` check to ignore
|
||||
false-positives in initializer list of record.
|
||||
|
||||
- Improved :doc:`readability-redundant-member-init
|
||||
<clang-tidy/checks/readability/redundant-member-init>` check to now also
|
||||
detect redundant in-class initializers.
|
||||
|
||||
- Improved :doc:`readability-simplify-boolean-expr
|
||||
<clang-tidy/checks/readability/simplify-boolean-expr>` check by adding the
|
||||
new option `IgnoreMacros` that allows to ignore boolean expressions originating
|
||||
from expanded macros.
|
||||
|
||||
- Improved :doc:`readability-simplify-subscript-expr
|
||||
<clang-tidy/checks/readability/simplify-subscript-expr>` check by extending
|
||||
the default value of the `Types` option to include ``std::span``.
|
||||
|
||||
- Improved :doc:`readability-static-accessed-through-instance
|
||||
<clang-tidy/checks/readability/static-accessed-through-instance>` check to
|
||||
identify calls to static member functions with out-of-class inline definitions.
|
||||
|
||||
Removed checks
|
||||
^^^^^^^^^^^^^^
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -62,7 +62,7 @@
|
||||
// _LIBCPP_VERSION represents the version of libc++, which matches the version of LLVM.
|
||||
// Given a LLVM release LLVM XX.YY.ZZ (e.g. LLVM 17.0.1 == 17.00.01), _LIBCPP_VERSION is
|
||||
// defined to XXYYZZ.
|
||||
# define _LIBCPP_VERSION 180000
|
||||
# define _LIBCPP_VERSION 190000
|
||||
|
||||
# define _LIBCPP_CONCAT_IMPL(_X, _Y) _X##_Y
|
||||
# define _LIBCPP_CONCAT(_X, _Y) _LIBCPP_CONCAT_IMPL(_X, _Y)
|
||||
|
@ -26,21 +26,12 @@ Non-comprehensive list of changes in this release
|
||||
ELF Improvements
|
||||
----------------
|
||||
|
||||
* ``--fat-lto-objects`` option is added to support LLVM FatLTO.
|
||||
Without ``--fat-lto-objects``, LLD will link LLVM FatLTO objects using the
|
||||
relocatable object file. (`D146778 <https://reviews.llvm.org/D146778>`_)
|
||||
* common-page-size can now be larger than the system page-size.
|
||||
(`#57618 <https://github.com/llvm/llvm-project/issues/57618>`_)
|
||||
|
||||
Breaking changes
|
||||
----------------
|
||||
|
||||
COFF Improvements
|
||||
-----------------
|
||||
|
||||
* Added support for ``--time-trace`` and associated ``--time-trace-granularity``.
|
||||
This generates a .json profile trace of the linker execution.
|
||||
|
||||
MinGW Improvements
|
||||
------------------
|
||||
|
||||
@ -50,9 +41,5 @@ MachO Improvements
|
||||
WebAssembly Improvements
|
||||
------------------------
|
||||
|
||||
* Indexes are no longer required on archive files. Instead symbol information
|
||||
is read from object files within the archive. This matches the behaviour of
|
||||
the ELF linker.
|
||||
|
||||
Fixes
|
||||
#####
|
||||
|
@ -16,7 +16,7 @@ if(NOT LLVM_NO_INSTALL_NAME_DIR_FOR_BUILD_TREE)
|
||||
endif()
|
||||
|
||||
if(NOT DEFINED LLVM_VERSION_MAJOR)
|
||||
set(LLVM_VERSION_MAJOR 18)
|
||||
set(LLVM_VERSION_MAJOR 19)
|
||||
endif()
|
||||
if(NOT DEFINED LLVM_VERSION_MINOR)
|
||||
set(LLVM_VERSION_MINOR 0)
|
||||
|
@ -50,79 +50,27 @@ Update on required toolchains to build LLVM
|
||||
Changes to the LLVM IR
|
||||
----------------------
|
||||
|
||||
* The `llvm.stacksave` and `llvm.stackrestore` intrinsics now use
|
||||
an overloaded pointer type to support non-0 address spaces.
|
||||
* The constant expression variants of the following instructions have been
|
||||
removed:
|
||||
|
||||
* ``and``
|
||||
* ``or``
|
||||
* ``lshr``
|
||||
* ``ashr``
|
||||
* ``zext``
|
||||
* ``sext``
|
||||
* ``fptrunc``
|
||||
* ``fpext``
|
||||
* ``fptoui``
|
||||
* ``fptosi``
|
||||
* ``uitofp``
|
||||
* ``sitofp``
|
||||
|
||||
* Added `llvm.exp10` intrinsic.
|
||||
|
||||
* Added a ``code_model`` attribute for the `global variable <LangRef.html#global-variables>`_.
|
||||
|
||||
Changes to LLVM infrastructure
|
||||
------------------------------
|
||||
|
||||
* Minimum Clang version to build LLVM in C++20 configuration has been updated to clang-17.0.6.
|
||||
|
||||
Changes to building LLVM
|
||||
------------------------
|
||||
|
||||
Changes to TableGen
|
||||
-------------------
|
||||
|
||||
* Added constructs for debugging TableGen files:
|
||||
|
||||
* `dump` keyword to dump messages to standard error, see
|
||||
https://github.com/llvm/llvm-project/pull/68793.
|
||||
* `!repr` bang operator to inspect the content of values, see
|
||||
https://github.com/llvm/llvm-project/pull/68716.
|
||||
|
||||
Changes to Interprocedural Optimizations
|
||||
----------------------------------------
|
||||
|
||||
Changes to the AArch64 Backend
|
||||
------------------------------
|
||||
|
||||
* Added support for Cortex-A520, Cortex-A720 and Cortex-X4 CPUs.
|
||||
|
||||
* Neoverse-N2 was incorrectly marked as an Armv8.5a core. This has been
|
||||
changed to an Armv9.0a core. However, crypto options are not enabled
|
||||
by default for Armv9 cores, so `-mcpu=neoverse-n2+crypto` is now required
|
||||
to enable crypto for this core. As far as the compiler is concerned,
|
||||
Armv9.0a has the same features enabled as Armv8.5a, with the exception
|
||||
of crypto.
|
||||
|
||||
Changes to the AMDGPU Backend
|
||||
-----------------------------
|
||||
|
||||
* `llvm.sqrt.f32` is now lowered correctly. Use `llvm.amdgcn.sqrt.f32`
|
||||
for raw instruction access.
|
||||
|
||||
* Implemented `llvm.stacksave` and `llvm.stackrestore` intrinsics.
|
||||
|
||||
* Implemented :ref:`llvm.get.rounding <int_get_rounding>`
|
||||
|
||||
* The default :ref:`AMDHSA code object version <amdgpu-amdhsa-code-object-metadata-v5>` is now 5.
|
||||
|
||||
Changes to the ARM Backend
|
||||
--------------------------
|
||||
|
||||
* Added support for Cortex-M52 CPUs.
|
||||
* Added execute-only support for Armv6-M.
|
||||
|
||||
Changes to the AVR Backend
|
||||
--------------------------
|
||||
|
||||
@ -135,21 +83,6 @@ Changes to the Hexagon Backend
|
||||
Changes to the LoongArch Backend
|
||||
--------------------------------
|
||||
|
||||
* Added intrinsics support for all LSX (128-bits SIMD) and LASX (256-bits SIMD)
|
||||
instructions.
|
||||
* Added definition and intrinsics support for new instructions that were
|
||||
introduced in LoongArch Reference Manual V1.10.
|
||||
* Emitted adjacent ``pcaddu18i+jirl`` instrunction sequence with one relocation
|
||||
``R_LARCH_CALL36`` instead of ``pcalau12i+jirl`` with two relocations
|
||||
``R_LARCH_PCALA_{HI20,LO12}`` for function call in medium code model.
|
||||
* The code model of global variables can now be overridden by means of the newly
|
||||
added LLVM IR attribute, ``code_model``.
|
||||
* Added support for the ``llvm.is.fpclass`` intrinsic.
|
||||
* ``mulodi4`` and ``muloti4`` libcalls were disabled due to absence in libgcc.
|
||||
* Added initial support for auto vectorization.
|
||||
* Added initial support for linker relaxation.
|
||||
* Assorted codegen improvements.
|
||||
|
||||
Changes to the MIPS Backend
|
||||
---------------------------
|
||||
|
||||
@ -159,146 +92,29 @@ Changes to the PowerPC Backend
|
||||
Changes to the RISC-V Backend
|
||||
-----------------------------
|
||||
|
||||
* The Zfa extension version was upgraded to 1.0 and is no longer experimental.
|
||||
* Zihintntl extension version was upgraded to 1.0 and is no longer experimental.
|
||||
* Intrinsics were added for Zk*, Zbb, and Zbc. See https://github.com/riscv-non-isa/riscv-c-api-doc/blob/master/riscv-c-api.md#scalar-bit-manipulation-extension-intrinsics
|
||||
* Default ABI with F but without D was changed to ilp32f for RV32 and to lp64f for RV64.
|
||||
* The Zvbb, Zvbc, Zvkb, Zvkg, Zvkn, Zvknc, Zvkned, Zvkng, Zvknha, Zvknhb, Zvks,
|
||||
Zvksc, Zvksed, Zvksg, Zvksh, and Zvkt extension version was upgraded to 1.0
|
||||
and is no longer experimental. However, the C intrinsics for these extensions
|
||||
are still experimental. To use the C intrinsics for these extensions,
|
||||
``-menable-experimental-extensions`` needs to be passed to Clang.
|
||||
* XSfcie extension and SiFive CSRs and instructions that were associated with
|
||||
it have been removed. None of these CSRs and instructions were part of
|
||||
"SiFive Custom Instruction Extension" as SiFive defines it. The LLVM project
|
||||
needs to work with SiFive to define and document real extension names for
|
||||
individual CSRs and instructions.
|
||||
* ``-mcpu=sifive-p450`` was added.
|
||||
* CodeGen of RV32E/RV64E was supported experimentally.
|
||||
* CodeGen of ilp32e/lp64e was supported experimentally.
|
||||
* Support was added for the Ziccif, Ziccrse, Ziccamoa, Zicclsm, Za64rs, Za128rs
|
||||
and Zic64b extensions which were introduced as a part of the RISC-V Profiles
|
||||
specification.
|
||||
* The Smepmp 1.0 extension is now supported.
|
||||
* ``-mcpu=sifive-p670`` was added.
|
||||
|
||||
Changes to the WebAssembly Backend
|
||||
----------------------------------
|
||||
|
||||
Changes to the Windows Target
|
||||
-----------------------------
|
||||
|
||||
* The LLVM filesystem class ``UniqueID`` and function ``equivalent()``
|
||||
no longer determine that distinct different path names for the same
|
||||
hard linked file actually are equal. This is an intentional tradeoff in a
|
||||
bug fix, where the bug used to cause distinct files to be considered
|
||||
equivalent on some file systems. This change fixed the issues
|
||||
https://github.com/llvm/llvm-project/issues/61401 and
|
||||
https://github.com/llvm/llvm-project/issues/22079.
|
||||
|
||||
Changes to the X86 Backend
|
||||
--------------------------
|
||||
|
||||
* The ``i128`` type now matches GCC and clang's ``__int128`` type. This mainly
|
||||
benefits external projects such as Rust which aim to be binary compatible
|
||||
with C, but also fixes code generation where LLVM already assumed that the
|
||||
type matched and called into libgcc helper functions.
|
||||
* Support ISA of ``USER_MSR``.
|
||||
* Support ISA of ``AVX10.1-256`` and ``AVX10.1-512``.
|
||||
* ``-mcpu=pantherlake`` and ``-mcpu=clearwaterforest`` are now supported.
|
||||
* ``-mapxf`` is supported.
|
||||
* Marking global variables with ``code_model = "small"/"large"`` in the IR now
|
||||
overrides the global code model to allow 32-bit relocations or require 64-bit
|
||||
relocations to the global variable.
|
||||
* The medium code model's code generation was audited to be more similar to the
|
||||
small code model where possible.
|
||||
|
||||
Changes to the OCaml bindings
|
||||
-----------------------------
|
||||
|
||||
Changes to the Python bindings
|
||||
------------------------------
|
||||
|
||||
* The python bindings have been removed.
|
||||
|
||||
|
||||
Changes to the C API
|
||||
--------------------
|
||||
|
||||
* Added ``LLVMGetTailCallKind`` and ``LLVMSetTailCallKind`` to
|
||||
allow getting and setting ``tail``, ``musttail``, and ``notail``
|
||||
attributes on call instructions.
|
||||
* The following functions for creating constant expressions have been removed,
|
||||
because the underlying constant expressions are no longer supported. Instead,
|
||||
an instruction should be created using the ``LLVMBuildXYZ`` APIs, which will
|
||||
constant fold the operands if possible and create an instruction otherwise:
|
||||
|
||||
* ``LLVMConstAnd``
|
||||
* ``LLVMConstOr``
|
||||
* ``LLVMConstLShr``
|
||||
* ``LLVMConstAShr``
|
||||
* ``LLVMConstZExt``
|
||||
* ``LLVMConstSExt``
|
||||
* ``LLVMConstZExtOrBitCast``
|
||||
* ``LLVMConstSExtOrBitCast``
|
||||
* ``LLVMConstIntCast``
|
||||
* ``LLVMConstFPTrunc``
|
||||
* ``LLVMConstFPExt``
|
||||
* ``LLVMConstFPToUI``
|
||||
* ``LLVMConstFPToSI``
|
||||
* ``LLVMConstUIToFP``
|
||||
* ``LLVMConstSIToFP``
|
||||
* ``LLVMConstFPCast``
|
||||
|
||||
* Added ``LLVMCreateTargetMachineWithOptions``, along with helper functions for
|
||||
an opaque option structure, as an alternative to ``LLVMCreateTargetMachine``.
|
||||
The option structure exposes an additional setting (i.e., the target ABI) and
|
||||
provides default values for unspecified settings.
|
||||
|
||||
* Added ``LLVMGetNNeg`` and ``LLVMSetNNeg`` for getting/setting the new nneg flag
|
||||
on zext instructions, and ``LLVMGetIsDisjoint`` and ``LLVMSetIsDisjoint``
|
||||
for getting/setting the new disjoint flag on or instructions.
|
||||
|
||||
* Added the following functions for manipulating operand bundles, as well as
|
||||
building ``call`` and ``invoke`` instructions that use operand bundles:
|
||||
|
||||
* ``LLVMBuildCallWithOperandBundles``
|
||||
* ``LLVMBuildInvokeWithOperandBundles``
|
||||
* ``LLVMCreateOperandBundle``
|
||||
* ``LLVMDisposeOperandBundle``
|
||||
* ``LLVMGetNumOperandBundles``
|
||||
* ``LLVMGetOperandBundleAtIndex``
|
||||
* ``LLVMGetNumOperandBundleArgs``
|
||||
* ``LLVMGetOperandBundleArgAtIndex``
|
||||
* ``LLVMGetOperandBundleTag``
|
||||
|
||||
* Added ``LLVMGetFastMathFlags`` and ``LLVMSetFastMathFlags`` for getting/setting
|
||||
the fast-math flags of an instruction, as well as ``LLVMCanValueUseFastMathFlags``
|
||||
for checking if an instruction can use such flags
|
||||
|
||||
Changes to the CodeGen infrastructure
|
||||
-------------------------------------
|
||||
|
||||
* A new debug type ``isel-dump`` is added to show only the SelectionDAG dumps
|
||||
after each ISel phase (i.e. ``-debug-only=isel-dump``). This new debug type
|
||||
can be filtered by function names using ``-filter-print-funcs=<function names>``,
|
||||
the same flag used to filter IR dumps after each Pass. Note that the existing
|
||||
``-debug-only=isel`` will take precedence over the new behavior and
|
||||
print SelectionDAG dumps of every single function regardless of
|
||||
``-filter-print-funcs``'s values.
|
||||
|
||||
* ``PrologEpilogInserter`` no longer supports register scavenging
|
||||
during forwards frame index elimination. Targets should use
|
||||
backwards frame index elimination instead.
|
||||
|
||||
* ``RegScavenger`` no longer supports forwards register
|
||||
scavenging. Clients should use backwards register scavenging
|
||||
instead, which is preferred because it does not depend on accurate
|
||||
kill flags.
|
||||
|
||||
Changes to the Metadata Info
|
||||
---------------------------------
|
||||
* Added a new loop metadata `!{!"llvm.loop.align", i32 64}`
|
||||
|
||||
Changes to the Debug Info
|
||||
---------------------------------
|
||||
@ -306,82 +122,16 @@ Changes to the Debug Info
|
||||
Changes to the LLVM tools
|
||||
---------------------------------
|
||||
|
||||
* llvm-symbolizer now treats invalid input as an address for which source
|
||||
information is not found.
|
||||
* llvm-readelf now supports ``--extra-sym-info`` (``-X``) to display extra
|
||||
information (section name) when showing symbols.
|
||||
|
||||
* ``llvm-nm`` now supports the ``--line-numbers`` (``-l``) option to use
|
||||
debugging information to print symbols' filenames and line numbers.
|
||||
|
||||
* llvm-symbolizer and llvm-addr2line now support addresses specified as symbol names.
|
||||
|
||||
* llvm-objcopy now supports ``--gap-fill`` and ``--pad-to`` options, for
|
||||
ELF input and binary output files only.
|
||||
|
||||
Changes to LLDB
|
||||
---------------------------------
|
||||
|
||||
* ``SBWatchpoint::GetHardwareIndex`` is deprecated and now returns -1
|
||||
to indicate the index is unavailable.
|
||||
* Methods in SBHostOS related to threads have had their implementations
|
||||
removed. These methods will return a value indicating failure.
|
||||
* ``SBType::FindDirectNestedType`` function is added. It's useful
|
||||
for formatters to quickly find directly nested type when it's known
|
||||
where to search for it, avoiding more expensive global search via
|
||||
``SBTarget::FindFirstType``.
|
||||
* ``lldb-vscode`` was renamed to ``lldb-dap`` and and its installation
|
||||
instructions have been updated to reflect this. The underlying functionality
|
||||
remains unchanged.
|
||||
* The ``mte_ctrl`` register can now be read from AArch64 Linux core files.
|
||||
* LLDB on AArch64 Linux now supports debugging the Scalable Matrix Extension
|
||||
(SME) and Scalable Matrix Extension 2 (SME2) for both live processes and core
|
||||
files. For details refer to the
|
||||
`AArch64 Linux documentation <https://lldb.llvm.org/use/aarch64-linux.html>`_.
|
||||
* LLDB now supports symbol and binary acquisition automatically using the
|
||||
DEBUFINFOD protocol. The standard mechanism of specifying DEBUFINOD servers in
|
||||
the ``DEBUGINFOD_URLS`` environment variable is used by default. In addition,
|
||||
users can specify servers to request symbols from using the LLDB setting
|
||||
``plugin.symbol-locator.debuginfod.server_urls``, override or adding to the
|
||||
environment variable.
|
||||
|
||||
|
||||
* When running on AArch64 Linux, ``lldb-server`` now provides register
|
||||
field information for the following registers: ``cpsr``, ``fpcr``,
|
||||
``fpsr``, ``svcr`` and ``mte_ctrl``. ::
|
||||
|
||||
(lldb) register read cpsr
|
||||
cpsr = 0x80001000
|
||||
= (N = 1, Z = 0, C = 0, V = 0, SS = 0, IL = 0, <...>
|
||||
|
||||
This is only available when ``lldb`` is built with XML support.
|
||||
Where possible the CPU's capabilities are used to decide which
|
||||
fields are present, however this is not always possible or entirely
|
||||
accurate. If in doubt, refer to the numerical value.
|
||||
|
||||
Changes to Sanitizers
|
||||
---------------------
|
||||
* HWASan now defaults to detecting use-after-scope bugs.
|
||||
|
||||
Other Changes
|
||||
-------------
|
||||
|
||||
* The ``Flags`` field of ``llvm::opt::Option`` has been split into ``Flags``
|
||||
and ``Visibility`` to simplify option sharing between various drivers (such
|
||||
as ``clang``, ``clang-cl``, or ``flang``) that rely on Clang's Options.td.
|
||||
Overloads of ``llvm::opt::OptTable`` that use ``FlagsToInclude`` have been
|
||||
deprecated. There is a script and instructions on how to resolve conflicts -
|
||||
see https://reviews.llvm.org/D157150 and https://reviews.llvm.org/D157151 for
|
||||
details.
|
||||
|
||||
* On Linux, FreeBSD, and NetBSD, setting the environment variable
|
||||
``LLVM_ENABLE_SYMBOLIZER_MARKUP`` causes tools to print stacktraces using
|
||||
:doc:`Symbolizer Markup <SymbolizerMarkupFormat>`.
|
||||
This works even if the tools have no embedded symbol information (i.e. are
|
||||
fully stripped); :doc:`llvm-symbolizer <CommandGuide/llvm-symbolizer>` can
|
||||
symbolize the markup afterwards using ``debuginfod``.
|
||||
|
||||
External Open Source Projects Using LLVM 15
|
||||
External Open Source Projects Using LLVM 19
|
||||
===========================================
|
||||
|
||||
* A project...
|
||||
|
@ -1,4 +1,4 @@
|
||||
llvm_version_major = 18
|
||||
llvm_version_major = 19
|
||||
llvm_version_minor = 0
|
||||
llvm_version_patch = 0
|
||||
llvm_version = "$llvm_version_major.$llvm_version_minor.$llvm_version_patch"
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
__author__ = "Daniel Dunbar"
|
||||
__email__ = "daniel@minormatter.com"
|
||||
__versioninfo__ = (18, 0, 0)
|
||||
__versioninfo__ = (19, 0, 0)
|
||||
__version__ = ".".join(str(v) for v in __versioninfo__) + "dev"
|
||||
|
||||
__all__ = []
|
||||
|
@ -1,10 +1,10 @@
|
||||
===========================
|
||||
OpenMP 17.0.0 Release Notes
|
||||
OpenMP 19.0.0 Release Notes
|
||||
===========================
|
||||
|
||||
|
||||
.. warning::
|
||||
These are in-progress notes for the upcoming LLVM 17.0.0 release.
|
||||
These are in-progress notes for the upcoming LLVM 19.0.0 release.
|
||||
Release notes for previous releases can be found on
|
||||
`the Download Page <https://releases.llvm.org/download.html>`_.
|
||||
|
||||
@ -12,7 +12,7 @@ OpenMP 17.0.0 Release Notes
|
||||
Introduction
|
||||
============
|
||||
|
||||
This document contains the release notes for the OpenMP runtime, release 17.0.0.
|
||||
This document contains the release notes for the OpenMP runtime, release 19.0.0.
|
||||
Here we describe the status of OpenMP, including major improvements
|
||||
from the previous release. All OpenMP releases may be downloaded
|
||||
from the `LLVM releases web site <https://llvm.org/releases/>`_.
|
||||
|
@ -1,5 +1,5 @@
|
||||
=======================================
|
||||
PSTL 18.0.0 (In-Progress) Release Notes
|
||||
PSTL 19.0.0 (In-Progress) Release Notes
|
||||
=======================================
|
||||
|
||||
.. contents::
|
||||
@ -10,7 +10,7 @@ Written by the `PSTL Team <https://pstl.llvm.org>`_
|
||||
|
||||
.. warning::
|
||||
|
||||
These are in-progress notes for the upcoming pstl 17 release.
|
||||
These are in-progress notes for the upcoming pstl 19 release.
|
||||
Release notes for previous releases can be found on
|
||||
`the Download Page <https://releases.llvm.org/download.html>`_.
|
||||
|
||||
@ -30,7 +30,7 @@ web page, this document applies to the *next* release, not the current one.
|
||||
To see the release notes for a specific release, please see the `releases
|
||||
page <https://llvm.org/releases/>`_.
|
||||
|
||||
What's New in PSTL 18.0.0?
|
||||
What's New in PSTL 19.0.0?
|
||||
==========================
|
||||
|
||||
New Features
|
||||
|
Loading…
x
Reference in New Issue
Block a user