Bump trunk version to 19.0.0git
This commit is contained in:
parent
93248729cf
commit
987087df90
clang-tools-extra/docs
clang/docs
libcxx/include
lld/docs
llvm
openmp/docs
pstl/docs
@ -69,9 +69,6 @@ Code completion
|
|||||||
Code actions
|
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
|
Signature help
|
||||||
^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^
|
||||||
|
|
||||||
@ -100,467 +97,15 @@ The improvements are...
|
|||||||
Improvements to clang-tidy
|
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 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 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
|
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
|
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.
|
// _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
|
// Given a LLVM release LLVM XX.YY.ZZ (e.g. LLVM 17.0.1 == 17.00.01), _LIBCPP_VERSION is
|
||||||
// defined to XXYYZZ.
|
// defined to XXYYZZ.
|
||||||
# define _LIBCPP_VERSION 180000
|
# define _LIBCPP_VERSION 190000
|
||||||
|
|
||||||
# define _LIBCPP_CONCAT_IMPL(_X, _Y) _X##_Y
|
# define _LIBCPP_CONCAT_IMPL(_X, _Y) _X##_Y
|
||||||
# define _LIBCPP_CONCAT(_X, _Y) _LIBCPP_CONCAT_IMPL(_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
|
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
|
Breaking changes
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
COFF Improvements
|
COFF Improvements
|
||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
* Added support for ``--time-trace`` and associated ``--time-trace-granularity``.
|
|
||||||
This generates a .json profile trace of the linker execution.
|
|
||||||
|
|
||||||
MinGW Improvements
|
MinGW Improvements
|
||||||
------------------
|
------------------
|
||||||
|
|
||||||
@ -50,9 +41,5 @@ MachO Improvements
|
|||||||
WebAssembly 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
|
Fixes
|
||||||
#####
|
#####
|
||||||
|
@ -16,7 +16,7 @@ if(NOT LLVM_NO_INSTALL_NAME_DIR_FOR_BUILD_TREE)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(NOT DEFINED LLVM_VERSION_MAJOR)
|
if(NOT DEFINED LLVM_VERSION_MAJOR)
|
||||||
set(LLVM_VERSION_MAJOR 18)
|
set(LLVM_VERSION_MAJOR 19)
|
||||||
endif()
|
endif()
|
||||||
if(NOT DEFINED LLVM_VERSION_MINOR)
|
if(NOT DEFINED LLVM_VERSION_MINOR)
|
||||||
set(LLVM_VERSION_MINOR 0)
|
set(LLVM_VERSION_MINOR 0)
|
||||||
|
@ -50,79 +50,27 @@ Update on required toolchains to build LLVM
|
|||||||
Changes to the LLVM IR
|
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
|
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 building LLVM
|
||||||
------------------------
|
------------------------
|
||||||
|
|
||||||
Changes to TableGen
|
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 Interprocedural Optimizations
|
||||||
----------------------------------------
|
----------------------------------------
|
||||||
|
|
||||||
Changes to the AArch64 Backend
|
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
|
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
|
Changes to the ARM Backend
|
||||||
--------------------------
|
--------------------------
|
||||||
|
|
||||||
* Added support for Cortex-M52 CPUs.
|
|
||||||
* Added execute-only support for Armv6-M.
|
|
||||||
|
|
||||||
Changes to the AVR Backend
|
Changes to the AVR Backend
|
||||||
--------------------------
|
--------------------------
|
||||||
|
|
||||||
@ -135,21 +83,6 @@ Changes to the Hexagon Backend
|
|||||||
Changes to the LoongArch 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
|
Changes to the MIPS Backend
|
||||||
---------------------------
|
---------------------------
|
||||||
|
|
||||||
@ -159,146 +92,29 @@ Changes to the PowerPC Backend
|
|||||||
Changes to the RISC-V 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 WebAssembly Backend
|
||||||
----------------------------------
|
----------------------------------
|
||||||
|
|
||||||
Changes to the Windows Target
|
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
|
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 OCaml bindings
|
||||||
-----------------------------
|
-----------------------------
|
||||||
|
|
||||||
Changes to the Python bindings
|
Changes to the Python bindings
|
||||||
------------------------------
|
------------------------------
|
||||||
|
|
||||||
* The python bindings have been removed.
|
|
||||||
|
|
||||||
|
|
||||||
Changes to the C API
|
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
|
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
|
Changes to the Metadata Info
|
||||||
---------------------------------
|
---------------------------------
|
||||||
* Added a new loop metadata `!{!"llvm.loop.align", i32 64}`
|
|
||||||
|
|
||||||
Changes to the Debug Info
|
Changes to the Debug Info
|
||||||
---------------------------------
|
---------------------------------
|
||||||
@ -306,82 +122,16 @@ Changes to the Debug Info
|
|||||||
Changes to the LLVM tools
|
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
|
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
|
Changes to Sanitizers
|
||||||
---------------------
|
---------------------
|
||||||
* HWASan now defaults to detecting use-after-scope bugs.
|
|
||||||
|
|
||||||
Other Changes
|
Other Changes
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
* The ``Flags`` field of ``llvm::opt::Option`` has been split into ``Flags``
|
External Open Source Projects Using LLVM 19
|
||||||
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
|
|
||||||
===========================================
|
===========================================
|
||||||
|
|
||||||
* A project...
|
* A project...
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
llvm_version_major = 18
|
llvm_version_major = 19
|
||||||
llvm_version_minor = 0
|
llvm_version_minor = 0
|
||||||
llvm_version_patch = 0
|
llvm_version_patch = 0
|
||||||
llvm_version = "$llvm_version_major.$llvm_version_minor.$llvm_version_patch"
|
llvm_version = "$llvm_version_major.$llvm_version_minor.$llvm_version_patch"
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
__author__ = "Daniel Dunbar"
|
__author__ = "Daniel Dunbar"
|
||||||
__email__ = "daniel@minormatter.com"
|
__email__ = "daniel@minormatter.com"
|
||||||
__versioninfo__ = (18, 0, 0)
|
__versioninfo__ = (19, 0, 0)
|
||||||
__version__ = ".".join(str(v) for v in __versioninfo__) + "dev"
|
__version__ = ".".join(str(v) for v in __versioninfo__) + "dev"
|
||||||
|
|
||||||
__all__ = []
|
__all__ = []
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
===========================
|
===========================
|
||||||
OpenMP 17.0.0 Release Notes
|
OpenMP 19.0.0 Release Notes
|
||||||
===========================
|
===========================
|
||||||
|
|
||||||
|
|
||||||
.. warning::
|
.. 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
|
Release notes for previous releases can be found on
|
||||||
`the Download Page <https://releases.llvm.org/download.html>`_.
|
`the Download Page <https://releases.llvm.org/download.html>`_.
|
||||||
|
|
||||||
@ -12,7 +12,7 @@ OpenMP 17.0.0 Release Notes
|
|||||||
Introduction
|
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
|
Here we describe the status of OpenMP, including major improvements
|
||||||
from the previous release. All OpenMP releases may be downloaded
|
from the previous release. All OpenMP releases may be downloaded
|
||||||
from the `LLVM releases web site <https://llvm.org/releases/>`_.
|
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::
|
.. contents::
|
||||||
@ -10,7 +10,7 @@ Written by the `PSTL Team <https://pstl.llvm.org>`_
|
|||||||
|
|
||||||
.. warning::
|
.. 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
|
Release notes for previous releases can be found on
|
||||||
`the Download Page <https://releases.llvm.org/download.html>`_.
|
`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
|
To see the release notes for a specific release, please see the `releases
|
||||||
page <https://llvm.org/releases/>`_.
|
page <https://llvm.org/releases/>`_.
|
||||||
|
|
||||||
What's New in PSTL 18.0.0?
|
What's New in PSTL 19.0.0?
|
||||||
==========================
|
==========================
|
||||||
|
|
||||||
New Features
|
New Features
|
||||||
|
Loading…
x
Reference in New Issue
Block a user