-
Notifications
You must be signed in to change notification settings - Fork 13k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Bump version to 21.0.0git #124870
Bump version to 21.0.0git #124870
Conversation
Also clear the release notes.
@llvm/pr-subscribers-libcxx @llvm/pr-subscribers-clang Author: Tom Stellard (tstellar) ChangesAlso clear the release notes. Patch is 123.23 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/124870.diff 12 Files Affected:
diff --git a/clang-tools-extra/docs/ReleaseNotes.rst b/clang-tools-extra/docs/ReleaseNotes.rst
index cc5f64a3f9fa321..727c7622426c84b 100644
--- a/clang-tools-extra/docs/ReleaseNotes.rst
+++ b/clang-tools-extra/docs/ReleaseNotes.rst
@@ -43,21 +43,12 @@ infrastructure are described first, followed by tool-specific sections.
Major New Features
------------------
-- The ``clang-pseudo`` tool is incomplete and does not have active maintainers,
- so it has been removed. See
- `the RFC <https://discourse.llvm.org/t/removing-pseudo-parser/71131/>`_ for
- more details.
-
-...
-
Improvements to clangd
----------------------
Inlay hints
^^^^^^^^^^^
-- Added `DefaultArguments` Inlay Hints option.
-
Diagnostics
^^^^^^^^^^^
@@ -73,16 +64,9 @@ Hover
Code completion
^^^^^^^^^^^^^^^
-- Added completion for C++20 keywords.
-
Code actions
^^^^^^^^^^^^
-- Added `Swap operands` tweak for certain binary operators.
-
-- Improved the extract-to-function code action to allow extracting statements
- with overloaded operators like ``<<`` of ``std::ostream``.
-
Signature help
^^^^^^^^^^^^^^
@@ -95,326 +79,30 @@ Objective-C
Miscellaneous
^^^^^^^^^^^^^
-- The DefineOutline tweak now handles member functions of class templates.
-
Improvements to clang-doc
-------------------------
Improvements to clang-query
---------------------------
-- Added `set enable-profile true/false` command for basic matcher profiling.
-
Improvements to clang-tidy
--------------------------
-- Improved :program:`clang-tidy-diff.py` script. Add the `-only-check-in-db`
- option to exclude files not present in the compilation database, avoiding
- false-negative results.
-
-- Improved :program:`run-clang-tidy.py` script. Fixed minor shutdown noise
- happening on certain platforms when interrupting the script.
-
-- Improved :program:`clang-tidy`:
-
- - add support for `--verify-config` flag to check the configuration options of
- the `Clang Static Analyzer Checks <https://clang.llvm.org/docs/analyzer/checkers.html>`_.
- - accept parameters file in command line.
- - fix incorrect configuration file path resolving when file paths contain ``..``.
- - remove global options for most of checks. All options are changed to local
- options except `IncludeStyle`, `StrictMode` and `IgnoreMacros`. Global scoped
- `StrictMode` and `IgnoreMacros` are deprecated and will be removed in further
- releases.
-
-.. csv-table::
- :header: "Check", "Options removed from global option"
-
- :doc:`bugprone-reserved-identifier <clang-tidy/checks/bugprone/reserved-identifier>`, AggressiveDependentMemberLookup
- :doc:`bugprone-unchecked-optional-access <clang-tidy/checks/bugprone/unchecked-optional-access>`, IgnoreSmartPointerDereference
- :doc:`cppcoreguidelines-pro-type-member-init <clang-tidy/checks/cppcoreguidelines/pro-type-member-init>`, UseAssignment
- :doc:`cppcoreguidelines-rvalue-reference-param-not-moved <clang-tidy/checks/cppcoreguidelines/rvalue-reference-param-not-moved>`, AllowPartialMove; IgnoreUnnamedParams; IgnoreNonDeducedTemplateTypes
- :doc:`misc-include-cleaner <clang-tidy/checks/misc/include-cleaner>`, IgnoreHeaders; DeduplicateFindings
- :doc:`performance-inefficient-vector-operation <clang-tidy/checks/performance/inefficient-vector-operation>`, EnableProto
- :doc:`readability-identifier-naming <clang-tidy/checks/readability/identifier-naming>`, AggressiveDependentMemberLookup
- :doc:`readability-inconsistent-declaration-parameter-name <clang-tidy/checks/readability/inconsistent-declaration-parameter-name>`, Strict
- :doc:`readability-redundant-access-specifiers <clang-tidy/checks/readability/redundant-access-specifiers>`, CheckFirstDeclaration
- :doc:`readability-redundant-casting <clang-tidy/checks/readability/redundant-casting>`, IgnoreTypeAliases
-
New checks
^^^^^^^^^^
-- New :doc:`bugprone-bitwise-pointer-cast
- <clang-tidy/checks/bugprone/bitwise-pointer-cast>` check.
-
- Warns about code that tries to cast between pointers by means of
- ``std::bit_cast`` or ``memcpy``.
-
-- New :doc:`bugprone-incorrect-enable-shared-from-this
- <clang-tidy/checks/bugprone/incorrect-enable-shared-from-this>` check.
-
- Detect classes or structs that do not publicly inherit from
- ``std::enable_shared_from_this``, because unintended behavior will
- otherwise occur when calling ``shared_from_this``.
-
-- New :doc:`bugprone-nondeterministic-pointer-iteration-order
- <clang-tidy/checks/bugprone/nondeterministic-pointer-iteration-order>`
- check.
-
- Finds nondeterministic usages of pointers in unordered containers.
-
-- New :doc:`bugprone-tagged-union-member-count
- <clang-tidy/checks/bugprone/tagged-union-member-count>` check.
-
- Gives warnings for tagged unions, where the number of tags is
- different from the number of data members inside the union.
-
-- New :doc:`modernize-use-integer-sign-comparison
- <clang-tidy/checks/modernize/use-integer-sign-comparison>` check.
-
- Replace comparisons between signed and unsigned integers with their safe
- C++20 ``std::cmp_*`` alternative, if available.
-
-- New :doc:`portability-template-virtual-member-function
- <clang-tidy/checks/portability/template-virtual-member-function>` check.
-
- Finds cases when an uninstantiated virtual member function in a template class
- causes cross-compiler incompatibility.
-
New check aliases
^^^^^^^^^^^^^^^^^
-- New alias :doc:`cert-arr39-c <clang-tidy/checks/cert/arr39-c>` to
- :doc:`bugprone-sizeof-expression
- <clang-tidy/checks/bugprone/sizeof-expression>` was added.
-
Changes in existing checks
^^^^^^^^^^^^^^^^^^^^^^^^^^
-- Improved :doc:`altera-id-dependent-backward-branch
- <clang-tidy/checks/altera/id-dependent-backward-branch>` check by fixing
- crashes from invalid code.
-
-- Improved :doc:`bugprone-branch-clone
- <clang-tidy/checks/bugprone/branch-clone>` check to improve detection of
- branch clones by now detecting duplicate inner and outer if statements.
-
-- Improved :doc:`bugprone-casting-through-void
- <clang-tidy/checks/bugprone/casting-through-void>` check to suggest replacing
- the offending code with ``reinterpret_cast``, to more clearly express intent.
-
-- Improved :doc:`bugprone-dangling-handle
- <clang-tidy/checks/bugprone/dangling-handle>` check to treat ``std::span`` as a
- handle class.
-
-- Improved :doc:`bugprone-exception-escape
- <clang-tidy/checks/bugprone/exception-escape>` by fixing false positives
- when a consteval function with throw statements.
-
-- Improved :doc:`bugprone-forwarding-reference-overload
- <clang-tidy/checks/bugprone/forwarding-reference-overload>` check by fixing
- a crash when determining if an ``enable_if[_t]`` was found.
-
-- Improve :doc:`bugprone-narrowing-conversions
- <clang-tidy/checks/bugprone/narrowing-conversions>` to avoid incorrect check
- results when floating point type is not ``float``, ``double`` and
- ``long double``.
-
-- Improved :doc:`bugprone-optional-value-conversion
- <clang-tidy/checks/bugprone/optional-value-conversion>` to support detecting
- conversion directly by ``std::make_unique`` and ``std::make_shared``.
-
-- Improved :doc:`bugprone-posix-return
- <clang-tidy/checks/bugprone/posix-return>` check to support integer literals
- as LHS and posix call as RHS of comparison.
-
-- Improved :doc:`bugprone-return-const-ref-from-parameter
- <clang-tidy/checks/bugprone/return-const-ref-from-parameter>` check to
- diagnose potential dangling references when returning a ``const &`` parameter
- by using the conditional operator ``cond ? var1 : var2`` and fixing false
- positives for functions which contain lambda and ignore parameters
- with ``[[clang::lifetimebound]]`` attribute.
-
-- Improved :doc:`bugprone-sizeof-expression
- <clang-tidy/checks/bugprone/sizeof-expression>` check to find suspicious
- usages of ``sizeof()``, ``alignof()``, and ``offsetof()`` when adding or
- subtracting from a pointer directly or when used to scale a numeric value and
- fix false positive when sizeof expression with template types.
-
-- Improved :doc:`bugprone-throw-keyword-missing
- <clang-tidy/checks/bugprone/throw-keyword-missing>` by fixing a false positive
- when using non-static member initializers and a constructor.
-
-- Improved :doc:`bugprone-unchecked-optional-access
- <clang-tidy/checks/bugprone/unchecked-optional-access>` to support
- ``bsl::optional`` and ``bdlb::NullableValue`` from
- <https://github.com/bloomberg/bde>_.
-
-- Improved :doc:`bugprone-unhandled-self-assignment
- <clang-tidy/checks/bugprone/unhandled-self-assignment>` check by fixing smart
- pointer check against std::unique_ptr type.
-
-- Improved :doc:`bugprone-unsafe-functions
- <clang-tidy/checks/bugprone/unsafe-functions>` check to allow specifying
- additional functions to match.
-
-- Improved :doc:`bugprone-unused-local-non-trivial-variable
- <clang-tidy/checks/bugprone/unused-local-non-trivial-variable>` check to avoid
- false positives when using name-independent variables after C++26.
-
-- Improved :doc:`bugprone-use-after-move
- <clang-tidy/checks/bugprone/use-after-move>` to avoid triggering on
- ``reset()`` calls on moved-from ``std::optional`` and ``std::any`` objects,
- similarly to smart pointers.
-
-- Improved :doc:`cert-flp30-c <clang-tidy/checks/cert/flp30-c>` check to
- fix false positive that floating point variable is only used in increment
- expression.
-
-- Improved :doc:`cppcoreguidelines-avoid-const-or-ref-data-members
- <clang-tidy/checks/cppcoreguidelines/avoid-const-or-ref-data-members>` check to
- avoid false positives when detecting a templated class with inheritance.
-
-- Improved :doc:`cppcoreguidelines-init-variables
- <clang-tidy/checks/cppcoreguidelines/init-variables>` check by fixing the
- insertion location for function pointers.
-
-- Improved :doc:`cppcoreguidelines-prefer-member-initializer
- <clang-tidy/checks/cppcoreguidelines/prefer-member-initializer>` check to
- avoid false positive when member initialization depends on a structured
- binding variable.
-
-- Fixed :doc:`cppcoreguidelines-pro-type-union-access
- <clang-tidy/checks/cppcoreguidelines/pro-type-union-access>` check to
- report a location even when the member location is not valid.
-
-- Improved :doc:`misc-definitions-in-headers
- <clang-tidy/checks/misc/definitions-in-headers>` check by rewording the
- diagnostic note that suggests adding ``inline``.
-
-- Improved :doc:`misc-redundant-expression
- <clang-tidy/checks/misc/redundant-expression>` check by extending the
- checker to detect floating point and integer literals in redundant
- expressions.
-
-- Improved :doc:`misc-unconventional-assign-operator
- <clang-tidy/checks/misc/unconventional-assign-operator>` check to avoid
- false positive for C++23 deducing this.
-
-- Improved :doc:`misc-use-internal-linkage
- <clang-tidy/checks/misc/use-internal-linkage>` check to insert ``static``
- keyword before type qualifiers such as ``const`` and ``volatile``. Also, fix
- false positives for function declaration without body, C++20 consteval
- functions, C++20 export declarations, and global scoped
- overloaded ``operator new`` and ``operator delete``.
-
-- Improved :doc:`modernize-avoid-c-arrays
- <clang-tidy/checks/modernize/avoid-c-arrays>` check to suggest using
- ``std::span`` as a replacement for parameters of incomplete C array type in
- C++20 and ``std::array`` or ``std::vector`` before C++20.
-
-- Improved :doc:`modernize-loop-convert
- <clang-tidy/checks/modernize/loop-convert>` check to fix false positive when
- using loop variable in initializer of lambda capture.
-
-- Improved :doc:`modernize-min-max-use-initializer-list
- <clang-tidy/checks/modernize/min-max-use-initializer-list>` check by fixing
- a false positive when only an implicit conversion happened inside an
- initializer list.
-
-- Improved :doc:`modernize-raw-string-literal
- <clang-tidy/checks/modernize/raw-string-literal>` check to fix incorrect
- fix-it when the string contains a user-defined suffix.
-
-- Improved :doc:`modernize-use-designated-initializers
- <clang-tidy/checks/modernize/use-designated-initializers>` check to fix a
- crash when a class is declared but not defined.
-
-- Improved :doc:`modernize-use-integer-sign-comparison
- <clang-tidy/checks/modernize/use-integer-sign-comparison>` check to
- add an option ``EnableQtSupport``, that makes C++17 ``q20::cmp_*`` alternative
- available for Qt-based applications.
-
-- Improved :doc:`modernize-use-nullptr
- <clang-tidy/checks/modernize/use-nullptr>` check to also recognize
- ``NULL``/``__null`` (but not ``0``) when used with a templated type.
-
-- Improved :doc:`modernize-use-starts-ends-with
- <clang-tidy/checks/modernize/use-starts-ends-with>` check to handle two new
- cases from ``rfind`` and ``compare`` to ``ends_with``, and one new case from
- ``substr`` to ``starts_with``, and a small adjustment to the diagnostic message.
-
-- Improved :doc:`modernize-use-std-format
- <clang-tidy/checks/modernize/use-std-format>` check to support replacing
- member function calls too and to only expand macros starting with ``PRI``
- and ``__PRI`` from ``<inttypes.h>`` in the format string.
-
-- Improved :doc:`modernize-use-std-print
- <clang-tidy/checks/modernize/use-std-print>` check to support replacing
- member function calls too and to only expand macros starting with ``PRI``
- and ``__PRI`` from ``<inttypes.h>`` in the format string.
-
-- Improved :doc:`modernize-use-using
- <clang-tidy/checks/modernize/use-using>` check by not expanding macros.
-
-- Improved :doc:`performance-avoid-endl
- <clang-tidy/checks/performance/avoid-endl>` check to use ``std::endl`` as
- placeholder when lexer cannot get source text.
-
-- Improved :doc:`performance-move-const-arg
- <clang-tidy/checks/performance/move-const-arg>` check to fix a crash when
- an argument type is declared but not defined.
-
-- Improved :doc:`performance-unnecessary-copy-initialization
- <clang-tidy/checks/performance/unnecessary-copy-initialization>` check
- to consider static member functions the same way as free functions.
-
-- Improved :doc:`readability-container-contains
- <clang-tidy/checks/readability/container-contains>` check to let it work on
- any class that has a ``contains`` method. Fix some false negatives in the
- ``find()`` case.
-
-- Improved :doc:`readability-enum-initial-value
- <clang-tidy/checks/readability/enum-initial-value>` check by only issuing
- diagnostics for the definition of an ``enum``, by not emitting a redundant
- file path for anonymous enums in the diagnostic, and by fixing a typo in the
- diagnostic.
-
-- Improved :doc:`readability-identifier-naming
- <clang-tidy/checks/readability/identifier-naming>` check to
- validate ``namespace`` aliases.
-
-- Improved :doc:`readability-implicit-bool-conversion
- <clang-tidy/checks/readability/implicit-bool-conversion>` check
- by adding the option `UseUpperCaseLiteralSuffix` to select the
- case of the literal suffix in fixes and fixing false positive for implicit
- conversion of comparison result in C23.
-
-- Improved :doc:`readability-redundant-casting
- <clang-tidy/checks/readability/redundant-casting>` check
- by addressing a false positive in aggregate initialization through
- parenthesized list.
-
-- Improved :doc:`readability-redundant-smartptr-get
- <clang-tidy/checks/readability/redundant-smartptr-get>` check to
- remove ``->``, when redundant ``get()`` is removed.
-
-- Improved :doc:`readability-use-std-min-max
- <clang-tidy/checks/readability/use-std-min-max>` check to use correct template
- type in ``std::min`` and ``std::max`` when operand is integer literal.
-
Removed checks
^^^^^^^^^^^^^^
Miscellaneous
^^^^^^^^^^^^^
-- The :doc:`bugprone-narrowing-conversions <clang-tidy/checks/bugprone/narrowing-conversions>`
- check is no longer an alias of :doc:`cppcoreguidelines-narrowing-conversions
- <clang-tidy/checks/cppcoreguidelines/narrowing-conversions>`. Instead,
- :doc:`cppcoreguidelines-narrowing-conversions
- <clang-tidy/checks/cppcoreguidelines/narrowing-conversions>` is now an alias
- of :doc:`bugprone-narrowing-conversions <clang-tidy/checks/bugprone/narrowing-conversions>`.
-
Improvements to include-fixer
-----------------------------
diff --git a/clang/docs/ReleaseNotes.rst b/clang/docs/ReleaseNotes.rst
index d8a94703bd9c576..7fafe2807bd3883 100644
--- a/clang/docs/ReleaseNotes.rst
+++ b/clang/docs/ReleaseNotes.rst
@@ -33,227 +33,16 @@ latest release, please see the `Clang Web Site <https://clang.llvm.org>`_ or the
Potentially Breaking Changes
============================
-These changes are ones which we think may surprise users when upgrading to
-Clang |release| because of the opportunity they pose for disruption to existing
-code bases.
-
-- The ``le32`` and ``le64`` targets have been removed.
-
-- ``clang -m32`` defaults to ``-mcpu=v9`` on SPARC Linux now. Distros
- still supporting SPARC V8 CPUs need to specify ``-mcpu=v8`` with a
- `config file
- <https://clang.llvm.org/docs/UsersManual.html#configuration-files>`_.
-
-- The ``clang-rename`` tool has been removed.
-
-- Removed support for RenderScript targets. This technology is
- `officially deprecated <https://developer.android.com/guide/topics/renderscript/compute>`_
- and users are encouraged to
- `migrate to Vulkan <https://developer.android.com/guide/topics/renderscript/migrate>`_
- or other options.
-
-- Clang now emits distinct type-based alias analysis tags for incompatible
- pointers by default, enabling more powerful alias analysis when accessing
- pointer types. This change may silently change code behavior for code
- containing strict-aliasing violations. The new default behavior can be
- disabled using ``-fno-pointer-tbaa``.
-
-- Clang will now more aggressively use undefined behavior on pointer addition
- overflow for optimization purposes. For example, a check like
- ``ptr + unsigned_offset < ptr`` will now optimize to ``false``, because
- ``ptr + unsigned_offset`` will cause undefined behavior if it overflows (or
- advances past the end of the object).
-
- Previously, ``ptr + unsigned_offset < ptr`` was optimized (by both Clang and
- GCC) to ``(ssize_t)unsigned_offset < 0``. This also results in an incorrect
- overflow check, but in a way that is less apparent when only testing with
- pointers in the low half of the address space.
-
- To avoid pointer addition overflow, it is necessary to perform the addition
- on integers, for example using
- ``(uintptr_t)ptr + unsigned_offset < (uintptr_t)ptr``. Sometimes, it is also
- possible to rewrite checks by only comparing the offset. For example,
- ``ptr + offset < end_ptr && ptr + offset >= ptr`` can be written as
- ``offset < (uintptr_t)(end_ptr - ptr)``.
-
- Undefined behavior due to pointer addition overflow can be reliably detected
- using ``-fsanitize=pointer-overflow``. It is also possible to use
- ``-fno-strict-overflow`` to opt-in to a language dialect where signed integer
- and pointer overflow are well-defined. Since Clang 20, it is also possible
- to use ``-fwrapv-pointer`` to only make pointer overflow well-defined, while
- not affecting the behavior of signed integer overflow.
-
-- The ``-fwrapv`` flag now only makes signed integer overflow well-defined,
- without affecting pointer overflow, which is controlled by a new
- ``-fwrapv-pointer`` flag. The ``-fno-strict-overflow`` flag now implies
- both ``-fwrapv`` and ``-fwrapv-pointer`` and as such retains its old meaning.
- The new behavior matches GCC.
C/C++ Language Potentially Breaking Changes
-------------------------------------------
-- Clang now rejects ``_Complex _BitInt`` types.
-
C++ Specific Potentially Breaking Changes
-----------------------------------------
-- The type trait builtin ``__is_nullptr`` has been removed, since it has very
- few users and can be written as ``__is_same(__remove_cv(T), decltype(nullptr))``,
- which GCC supports as well.
-
-- The type trait builtin ``__is_referenceable`` has been deprecated, since it has
- very few users and all the type traits that could benefit from it in the
- standard library already have their own bespoke builtins. It will be removed in
- Clang 21.
-
-- Clang will now correctly diagnose as ill-formed a constant expression where an
- enum without a fixed underlying type is set...
[truncated]
|
@llvm/pr-subscribers-lld Author: Tom Stellard (tstellar) ChangesAlso clear the release notes. Patch is 123.21 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/124870.diff 12 Files Affected:
diff --git a/clang-tools-extra/docs/ReleaseNotes.rst b/clang-tools-extra/docs/ReleaseNotes.rst
index cc5f64a3f9fa32..727c7622426c84 100644
--- a/clang-tools-extra/docs/ReleaseNotes.rst
+++ b/clang-tools-extra/docs/ReleaseNotes.rst
@@ -43,21 +43,12 @@ infrastructure are described first, followed by tool-specific sections.
Major New Features
------------------
-- The ``clang-pseudo`` tool is incomplete and does not have active maintainers,
- so it has been removed. See
- `the RFC <https://discourse.llvm.org/t/removing-pseudo-parser/71131/>`_ for
- more details.
-
-...
-
Improvements to clangd
----------------------
Inlay hints
^^^^^^^^^^^
-- Added `DefaultArguments` Inlay Hints option.
-
Diagnostics
^^^^^^^^^^^
@@ -73,16 +64,9 @@ Hover
Code completion
^^^^^^^^^^^^^^^
-- Added completion for C++20 keywords.
-
Code actions
^^^^^^^^^^^^
-- Added `Swap operands` tweak for certain binary operators.
-
-- Improved the extract-to-function code action to allow extracting statements
- with overloaded operators like ``<<`` of ``std::ostream``.
-
Signature help
^^^^^^^^^^^^^^
@@ -95,326 +79,30 @@ Objective-C
Miscellaneous
^^^^^^^^^^^^^
-- The DefineOutline tweak now handles member functions of class templates.
-
Improvements to clang-doc
-------------------------
Improvements to clang-query
---------------------------
-- Added `set enable-profile true/false` command for basic matcher profiling.
-
Improvements to clang-tidy
--------------------------
-- Improved :program:`clang-tidy-diff.py` script. Add the `-only-check-in-db`
- option to exclude files not present in the compilation database, avoiding
- false-negative results.
-
-- Improved :program:`run-clang-tidy.py` script. Fixed minor shutdown noise
- happening on certain platforms when interrupting the script.
-
-- Improved :program:`clang-tidy`:
-
- - add support for `--verify-config` flag to check the configuration options of
- the `Clang Static Analyzer Checks <https://clang.llvm.org/docs/analyzer/checkers.html>`_.
- - accept parameters file in command line.
- - fix incorrect configuration file path resolving when file paths contain ``..``.
- - remove global options for most of checks. All options are changed to local
- options except `IncludeStyle`, `StrictMode` and `IgnoreMacros`. Global scoped
- `StrictMode` and `IgnoreMacros` are deprecated and will be removed in further
- releases.
-
-.. csv-table::
- :header: "Check", "Options removed from global option"
-
- :doc:`bugprone-reserved-identifier <clang-tidy/checks/bugprone/reserved-identifier>`, AggressiveDependentMemberLookup
- :doc:`bugprone-unchecked-optional-access <clang-tidy/checks/bugprone/unchecked-optional-access>`, IgnoreSmartPointerDereference
- :doc:`cppcoreguidelines-pro-type-member-init <clang-tidy/checks/cppcoreguidelines/pro-type-member-init>`, UseAssignment
- :doc:`cppcoreguidelines-rvalue-reference-param-not-moved <clang-tidy/checks/cppcoreguidelines/rvalue-reference-param-not-moved>`, AllowPartialMove; IgnoreUnnamedParams; IgnoreNonDeducedTemplateTypes
- :doc:`misc-include-cleaner <clang-tidy/checks/misc/include-cleaner>`, IgnoreHeaders; DeduplicateFindings
- :doc:`performance-inefficient-vector-operation <clang-tidy/checks/performance/inefficient-vector-operation>`, EnableProto
- :doc:`readability-identifier-naming <clang-tidy/checks/readability/identifier-naming>`, AggressiveDependentMemberLookup
- :doc:`readability-inconsistent-declaration-parameter-name <clang-tidy/checks/readability/inconsistent-declaration-parameter-name>`, Strict
- :doc:`readability-redundant-access-specifiers <clang-tidy/checks/readability/redundant-access-specifiers>`, CheckFirstDeclaration
- :doc:`readability-redundant-casting <clang-tidy/checks/readability/redundant-casting>`, IgnoreTypeAliases
-
New checks
^^^^^^^^^^
-- New :doc:`bugprone-bitwise-pointer-cast
- <clang-tidy/checks/bugprone/bitwise-pointer-cast>` check.
-
- Warns about code that tries to cast between pointers by means of
- ``std::bit_cast`` or ``memcpy``.
-
-- New :doc:`bugprone-incorrect-enable-shared-from-this
- <clang-tidy/checks/bugprone/incorrect-enable-shared-from-this>` check.
-
- Detect classes or structs that do not publicly inherit from
- ``std::enable_shared_from_this``, because unintended behavior will
- otherwise occur when calling ``shared_from_this``.
-
-- New :doc:`bugprone-nondeterministic-pointer-iteration-order
- <clang-tidy/checks/bugprone/nondeterministic-pointer-iteration-order>`
- check.
-
- Finds nondeterministic usages of pointers in unordered containers.
-
-- New :doc:`bugprone-tagged-union-member-count
- <clang-tidy/checks/bugprone/tagged-union-member-count>` check.
-
- Gives warnings for tagged unions, where the number of tags is
- different from the number of data members inside the union.
-
-- New :doc:`modernize-use-integer-sign-comparison
- <clang-tidy/checks/modernize/use-integer-sign-comparison>` check.
-
- Replace comparisons between signed and unsigned integers with their safe
- C++20 ``std::cmp_*`` alternative, if available.
-
-- New :doc:`portability-template-virtual-member-function
- <clang-tidy/checks/portability/template-virtual-member-function>` check.
-
- Finds cases when an uninstantiated virtual member function in a template class
- causes cross-compiler incompatibility.
-
New check aliases
^^^^^^^^^^^^^^^^^
-- New alias :doc:`cert-arr39-c <clang-tidy/checks/cert/arr39-c>` to
- :doc:`bugprone-sizeof-expression
- <clang-tidy/checks/bugprone/sizeof-expression>` was added.
-
Changes in existing checks
^^^^^^^^^^^^^^^^^^^^^^^^^^
-- Improved :doc:`altera-id-dependent-backward-branch
- <clang-tidy/checks/altera/id-dependent-backward-branch>` check by fixing
- crashes from invalid code.
-
-- Improved :doc:`bugprone-branch-clone
- <clang-tidy/checks/bugprone/branch-clone>` check to improve detection of
- branch clones by now detecting duplicate inner and outer if statements.
-
-- Improved :doc:`bugprone-casting-through-void
- <clang-tidy/checks/bugprone/casting-through-void>` check to suggest replacing
- the offending code with ``reinterpret_cast``, to more clearly express intent.
-
-- Improved :doc:`bugprone-dangling-handle
- <clang-tidy/checks/bugprone/dangling-handle>` check to treat ``std::span`` as a
- handle class.
-
-- Improved :doc:`bugprone-exception-escape
- <clang-tidy/checks/bugprone/exception-escape>` by fixing false positives
- when a consteval function with throw statements.
-
-- Improved :doc:`bugprone-forwarding-reference-overload
- <clang-tidy/checks/bugprone/forwarding-reference-overload>` check by fixing
- a crash when determining if an ``enable_if[_t]`` was found.
-
-- Improve :doc:`bugprone-narrowing-conversions
- <clang-tidy/checks/bugprone/narrowing-conversions>` to avoid incorrect check
- results when floating point type is not ``float``, ``double`` and
- ``long double``.
-
-- Improved :doc:`bugprone-optional-value-conversion
- <clang-tidy/checks/bugprone/optional-value-conversion>` to support detecting
- conversion directly by ``std::make_unique`` and ``std::make_shared``.
-
-- Improved :doc:`bugprone-posix-return
- <clang-tidy/checks/bugprone/posix-return>` check to support integer literals
- as LHS and posix call as RHS of comparison.
-
-- Improved :doc:`bugprone-return-const-ref-from-parameter
- <clang-tidy/checks/bugprone/return-const-ref-from-parameter>` check to
- diagnose potential dangling references when returning a ``const &`` parameter
- by using the conditional operator ``cond ? var1 : var2`` and fixing false
- positives for functions which contain lambda and ignore parameters
- with ``[[clang::lifetimebound]]`` attribute.
-
-- Improved :doc:`bugprone-sizeof-expression
- <clang-tidy/checks/bugprone/sizeof-expression>` check to find suspicious
- usages of ``sizeof()``, ``alignof()``, and ``offsetof()`` when adding or
- subtracting from a pointer directly or when used to scale a numeric value and
- fix false positive when sizeof expression with template types.
-
-- Improved :doc:`bugprone-throw-keyword-missing
- <clang-tidy/checks/bugprone/throw-keyword-missing>` by fixing a false positive
- when using non-static member initializers and a constructor.
-
-- Improved :doc:`bugprone-unchecked-optional-access
- <clang-tidy/checks/bugprone/unchecked-optional-access>` to support
- ``bsl::optional`` and ``bdlb::NullableValue`` from
- <https://github.com/bloomberg/bde>_.
-
-- Improved :doc:`bugprone-unhandled-self-assignment
- <clang-tidy/checks/bugprone/unhandled-self-assignment>` check by fixing smart
- pointer check against std::unique_ptr type.
-
-- Improved :doc:`bugprone-unsafe-functions
- <clang-tidy/checks/bugprone/unsafe-functions>` check to allow specifying
- additional functions to match.
-
-- Improved :doc:`bugprone-unused-local-non-trivial-variable
- <clang-tidy/checks/bugprone/unused-local-non-trivial-variable>` check to avoid
- false positives when using name-independent variables after C++26.
-
-- Improved :doc:`bugprone-use-after-move
- <clang-tidy/checks/bugprone/use-after-move>` to avoid triggering on
- ``reset()`` calls on moved-from ``std::optional`` and ``std::any`` objects,
- similarly to smart pointers.
-
-- Improved :doc:`cert-flp30-c <clang-tidy/checks/cert/flp30-c>` check to
- fix false positive that floating point variable is only used in increment
- expression.
-
-- Improved :doc:`cppcoreguidelines-avoid-const-or-ref-data-members
- <clang-tidy/checks/cppcoreguidelines/avoid-const-or-ref-data-members>` check to
- avoid false positives when detecting a templated class with inheritance.
-
-- Improved :doc:`cppcoreguidelines-init-variables
- <clang-tidy/checks/cppcoreguidelines/init-variables>` check by fixing the
- insertion location for function pointers.
-
-- Improved :doc:`cppcoreguidelines-prefer-member-initializer
- <clang-tidy/checks/cppcoreguidelines/prefer-member-initializer>` check to
- avoid false positive when member initialization depends on a structured
- binding variable.
-
-- Fixed :doc:`cppcoreguidelines-pro-type-union-access
- <clang-tidy/checks/cppcoreguidelines/pro-type-union-access>` check to
- report a location even when the member location is not valid.
-
-- Improved :doc:`misc-definitions-in-headers
- <clang-tidy/checks/misc/definitions-in-headers>` check by rewording the
- diagnostic note that suggests adding ``inline``.
-
-- Improved :doc:`misc-redundant-expression
- <clang-tidy/checks/misc/redundant-expression>` check by extending the
- checker to detect floating point and integer literals in redundant
- expressions.
-
-- Improved :doc:`misc-unconventional-assign-operator
- <clang-tidy/checks/misc/unconventional-assign-operator>` check to avoid
- false positive for C++23 deducing this.
-
-- Improved :doc:`misc-use-internal-linkage
- <clang-tidy/checks/misc/use-internal-linkage>` check to insert ``static``
- keyword before type qualifiers such as ``const`` and ``volatile``. Also, fix
- false positives for function declaration without body, C++20 consteval
- functions, C++20 export declarations, and global scoped
- overloaded ``operator new`` and ``operator delete``.
-
-- Improved :doc:`modernize-avoid-c-arrays
- <clang-tidy/checks/modernize/avoid-c-arrays>` check to suggest using
- ``std::span`` as a replacement for parameters of incomplete C array type in
- C++20 and ``std::array`` or ``std::vector`` before C++20.
-
-- Improved :doc:`modernize-loop-convert
- <clang-tidy/checks/modernize/loop-convert>` check to fix false positive when
- using loop variable in initializer of lambda capture.
-
-- Improved :doc:`modernize-min-max-use-initializer-list
- <clang-tidy/checks/modernize/min-max-use-initializer-list>` check by fixing
- a false positive when only an implicit conversion happened inside an
- initializer list.
-
-- Improved :doc:`modernize-raw-string-literal
- <clang-tidy/checks/modernize/raw-string-literal>` check to fix incorrect
- fix-it when the string contains a user-defined suffix.
-
-- Improved :doc:`modernize-use-designated-initializers
- <clang-tidy/checks/modernize/use-designated-initializers>` check to fix a
- crash when a class is declared but not defined.
-
-- Improved :doc:`modernize-use-integer-sign-comparison
- <clang-tidy/checks/modernize/use-integer-sign-comparison>` check to
- add an option ``EnableQtSupport``, that makes C++17 ``q20::cmp_*`` alternative
- available for Qt-based applications.
-
-- Improved :doc:`modernize-use-nullptr
- <clang-tidy/checks/modernize/use-nullptr>` check to also recognize
- ``NULL``/``__null`` (but not ``0``) when used with a templated type.
-
-- Improved :doc:`modernize-use-starts-ends-with
- <clang-tidy/checks/modernize/use-starts-ends-with>` check to handle two new
- cases from ``rfind`` and ``compare`` to ``ends_with``, and one new case from
- ``substr`` to ``starts_with``, and a small adjustment to the diagnostic message.
-
-- Improved :doc:`modernize-use-std-format
- <clang-tidy/checks/modernize/use-std-format>` check to support replacing
- member function calls too and to only expand macros starting with ``PRI``
- and ``__PRI`` from ``<inttypes.h>`` in the format string.
-
-- Improved :doc:`modernize-use-std-print
- <clang-tidy/checks/modernize/use-std-print>` check to support replacing
- member function calls too and to only expand macros starting with ``PRI``
- and ``__PRI`` from ``<inttypes.h>`` in the format string.
-
-- Improved :doc:`modernize-use-using
- <clang-tidy/checks/modernize/use-using>` check by not expanding macros.
-
-- Improved :doc:`performance-avoid-endl
- <clang-tidy/checks/performance/avoid-endl>` check to use ``std::endl`` as
- placeholder when lexer cannot get source text.
-
-- Improved :doc:`performance-move-const-arg
- <clang-tidy/checks/performance/move-const-arg>` check to fix a crash when
- an argument type is declared but not defined.
-
-- Improved :doc:`performance-unnecessary-copy-initialization
- <clang-tidy/checks/performance/unnecessary-copy-initialization>` check
- to consider static member functions the same way as free functions.
-
-- Improved :doc:`readability-container-contains
- <clang-tidy/checks/readability/container-contains>` check to let it work on
- any class that has a ``contains`` method. Fix some false negatives in the
- ``find()`` case.
-
-- Improved :doc:`readability-enum-initial-value
- <clang-tidy/checks/readability/enum-initial-value>` check by only issuing
- diagnostics for the definition of an ``enum``, by not emitting a redundant
- file path for anonymous enums in the diagnostic, and by fixing a typo in the
- diagnostic.
-
-- Improved :doc:`readability-identifier-naming
- <clang-tidy/checks/readability/identifier-naming>` check to
- validate ``namespace`` aliases.
-
-- Improved :doc:`readability-implicit-bool-conversion
- <clang-tidy/checks/readability/implicit-bool-conversion>` check
- by adding the option `UseUpperCaseLiteralSuffix` to select the
- case of the literal suffix in fixes and fixing false positive for implicit
- conversion of comparison result in C23.
-
-- Improved :doc:`readability-redundant-casting
- <clang-tidy/checks/readability/redundant-casting>` check
- by addressing a false positive in aggregate initialization through
- parenthesized list.
-
-- Improved :doc:`readability-redundant-smartptr-get
- <clang-tidy/checks/readability/redundant-smartptr-get>` check to
- remove ``->``, when redundant ``get()`` is removed.
-
-- Improved :doc:`readability-use-std-min-max
- <clang-tidy/checks/readability/use-std-min-max>` check to use correct template
- type in ``std::min`` and ``std::max`` when operand is integer literal.
-
Removed checks
^^^^^^^^^^^^^^
Miscellaneous
^^^^^^^^^^^^^
-- The :doc:`bugprone-narrowing-conversions <clang-tidy/checks/bugprone/narrowing-conversions>`
- check is no longer an alias of :doc:`cppcoreguidelines-narrowing-conversions
- <clang-tidy/checks/cppcoreguidelines/narrowing-conversions>`. Instead,
- :doc:`cppcoreguidelines-narrowing-conversions
- <clang-tidy/checks/cppcoreguidelines/narrowing-conversions>` is now an alias
- of :doc:`bugprone-narrowing-conversions <clang-tidy/checks/bugprone/narrowing-conversions>`.
-
Improvements to include-fixer
-----------------------------
diff --git a/clang/docs/ReleaseNotes.rst b/clang/docs/ReleaseNotes.rst
index d8a94703bd9c57..7fafe2807bd388 100644
--- a/clang/docs/ReleaseNotes.rst
+++ b/clang/docs/ReleaseNotes.rst
@@ -33,227 +33,16 @@ latest release, please see the `Clang Web Site <https://clang.llvm.org>`_ or the
Potentially Breaking Changes
============================
-These changes are ones which we think may surprise users when upgrading to
-Clang |release| because of the opportunity they pose for disruption to existing
-code bases.
-
-- The ``le32`` and ``le64`` targets have been removed.
-
-- ``clang -m32`` defaults to ``-mcpu=v9`` on SPARC Linux now. Distros
- still supporting SPARC V8 CPUs need to specify ``-mcpu=v8`` with a
- `config file
- <https://clang.llvm.org/docs/UsersManual.html#configuration-files>`_.
-
-- The ``clang-rename`` tool has been removed.
-
-- Removed support for RenderScript targets. This technology is
- `officially deprecated <https://developer.android.com/guide/topics/renderscript/compute>`_
- and users are encouraged to
- `migrate to Vulkan <https://developer.android.com/guide/topics/renderscript/migrate>`_
- or other options.
-
-- Clang now emits distinct type-based alias analysis tags for incompatible
- pointers by default, enabling more powerful alias analysis when accessing
- pointer types. This change may silently change code behavior for code
- containing strict-aliasing violations. The new default behavior can be
- disabled using ``-fno-pointer-tbaa``.
-
-- Clang will now more aggressively use undefined behavior on pointer addition
- overflow for optimization purposes. For example, a check like
- ``ptr + unsigned_offset < ptr`` will now optimize to ``false``, because
- ``ptr + unsigned_offset`` will cause undefined behavior if it overflows (or
- advances past the end of the object).
-
- Previously, ``ptr + unsigned_offset < ptr`` was optimized (by both Clang and
- GCC) to ``(ssize_t)unsigned_offset < 0``. This also results in an incorrect
- overflow check, but in a way that is less apparent when only testing with
- pointers in the low half of the address space.
-
- To avoid pointer addition overflow, it is necessary to perform the addition
- on integers, for example using
- ``(uintptr_t)ptr + unsigned_offset < (uintptr_t)ptr``. Sometimes, it is also
- possible to rewrite checks by only comparing the offset. For example,
- ``ptr + offset < end_ptr && ptr + offset >= ptr`` can be written as
- ``offset < (uintptr_t)(end_ptr - ptr)``.
-
- Undefined behavior due to pointer addition overflow can be reliably detected
- using ``-fsanitize=pointer-overflow``. It is also possible to use
- ``-fno-strict-overflow`` to opt-in to a language dialect where signed integer
- and pointer overflow are well-defined. Since Clang 20, it is also possible
- to use ``-fwrapv-pointer`` to only make pointer overflow well-defined, while
- not affecting the behavior of signed integer overflow.
-
-- The ``-fwrapv`` flag now only makes signed integer overflow well-defined,
- without affecting pointer overflow, which is controlled by a new
- ``-fwrapv-pointer`` flag. The ``-fno-strict-overflow`` flag now implies
- both ``-fwrapv`` and ``-fwrapv-pointer`` and as such retains its old meaning.
- The new behavior matches GCC.
C/C++ Language Potentially Breaking Changes
-------------------------------------------
-- Clang now rejects ``_Complex _BitInt`` types.
-
C++ Specific Potentially Breaking Changes
-----------------------------------------
-- The type trait builtin ``__is_nullptr`` has been removed, since it has very
- few users and can be written as ``__is_same(__remove_cv(T), decltype(nullptr))``,
- which GCC supports as well.
-
-- The type trait builtin ``__is_referenceable`` has been deprecated, since it has
- very few users and all the type traits that could benefit from it in the
- standard library already have their own bespoke builtins. It will be removed in
- Clang 21.
-
-- Clang will now correctly diagnose as ill-formed a constant expression where an
- enum without a fixed underlying type is set to ...
[truncated]
|
LLVM Buildbot has detected a new failure on builder Full details are available at: https://lab.llvm.org/buildbot/#/builders/88/builds/7367 Here is the relevant piece of the build log for the reference
|
LLVM Buildbot has detected a new failure on builder Full details are available at: https://lab.llvm.org/buildbot/#/builders/65/builds/11410 Here is the relevant piece of the build log for the reference
|
LLVM Buildbot has detected a new failure on builder Full details are available at: https://lab.llvm.org/buildbot/#/builders/73/builds/12630 Here is the relevant piece of the build log for the reference
|
LLVM Buildbot has detected a new failure on builder Full details are available at: https://lab.llvm.org/buildbot/#/builders/153/builds/21270 Here is the relevant piece of the build log for the reference
|
Also clear the release notes.
…aka/fix-merges-29012025 Bump version to 21.0.0git (llvm#124870)
see also llvm/llvm-project#124870
Also clear the release notes.