Author: Aaron Ballman Date: 2022-09-15T07:29:49-04:00 New Revision: e076680bd59cec5e98fe05aeb91891a1e5745e5b
URL: https://github.com/llvm/llvm-project/commit/e076680bd59cec5e98fe05aeb91891a1e5745e5b DIFF: https://github.com/llvm/llvm-project/commit/e076680bd59cec5e98fe05aeb91891a1e5745e5b.diff LOG: Add a "Potentially Breaking Changes" section to the Clang release notes Sometimes we make changes to the compiler that we expect may cause disruption for users. For example, we may strengthen a warning to default to be an error, or fix an accepts-invalid bug that's been around for a long time, etc which may cause previously accepted code to now be rejected. Rather than hope users discover that information by reading all of the release notes, it's better that we call these out in one location at the top of the release notes. Based on feedback collected in the discussion at: https://discourse.llvm.org/t/configure-script-breakage-with-the-new-werror-implicit-function-declaration/65213/ Differential Revision: https://reviews.llvm.org/D133771 Added: Modified: clang/docs/ReleaseNotes.rst Removed: ################################################################################ diff --git a/clang/docs/ReleaseNotes.rst b/clang/docs/ReleaseNotes.rst index dcc2eaf4b202f..0680aa56db0b7 100644 --- a/clang/docs/ReleaseNotes.rst +++ b/clang/docs/ReleaseNotes.rst @@ -36,6 +36,30 @@ main Clang web page, this document applies to the *next* release, not the current one. To see the release notes for a specific release, please see the `releases page <https://llvm.org/releases/>`_. +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. + +- Clang will now correctly diagnose as ill-formed a constant expression where an + enum without a fixed underlying type is set to a value outside the range of + the enumeration's values. Due to the extended period of time this bug was + present in major C++ implementations (including Clang), this error has the + ability to be downgraded into a warning (via: + ``-Wno-error=enum-constexpr-conversion``) to provide a transition period for + users. This diagnostic is expected to turn into an error-only diagnostic in + the next Clang release. Fixes + `Issue 50055: <https://github.com/llvm/llvm-project/issues/50055>`_. +- ``-Wincompatible-function-pointer-types`` now defaults to an error in all C + language modes. It may be downgraded to a warning with + ``-Wno-error=incompatible-function-pointer-types`` or disabled entirely with + ``-Wno-implicit-function-pointer-types``. *NOTE* We recommend that projects + using configure scripts verify the results do not change before/after setting + ``-Werror=incompatible-function-pointer-types`` to avoid incompatibility with + Clang 16. + + What's New in Clang |release|? ============================== @@ -99,14 +123,6 @@ Bug Fixes Improvements to Clang's diagnostics ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -- Clang will now correctly diagnose as ill-formed a constant expression where an - enum without a fixed underlying type is set to a value outside the range of - the enumeration's values. Due to the extended period of time this bug was - present in major C++ implementations (including Clang), this error has the - ability to be downgraded into a warning (via: -Wno-error=enum-constexpr-conversion) - to provide a transition period for users. This diagnostic is expected to turn - into an error-only diagnostic in the next Clang release. Fixes - `Issue 50055: <https://github.com/llvm/llvm-project/issues/50055>`_. - Clang will now check compile-time determinable string literals as format strings. Fixes `Issue 55805: <https://github.com/llvm/llvm-project/issues/55805>`_. - ``-Wformat`` now recognizes ``%b`` for the ``printf``/``scanf`` family of @@ -119,10 +135,6 @@ Improvements to Clang's diagnostics potential false positives, this diagnostic will not diagnose use of the ``true`` macro (from ``<stdbool.h>>`) in C language mode despite the macro being defined to expand to ``1``. -- ``-Wincompatible-function-pointer-types`` now defaults to an error in all C - language modes. It may be downgraded to a warning with - ``-Wno-error=incompatible-function-pointer-types`` or disabled entirely with - ``-Wno-implicit-function-pointer-types``. - Clang will now print more information about failed static assertions. In particular, simple static assertion expressions are evaluated to their compile-time value and printed out if the assertion fails. _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits