Author: Roy Jacobson Date: 2023-02-15T23:53:38+02:00 New Revision: f5aa8d191a5b5ea118281bfa410bdb2ee961c704
URL: https://github.com/llvm/llvm-project/commit/f5aa8d191a5b5ea118281bfa410bdb2ee961c704 DIFF: https://github.com/llvm/llvm-project/commit/f5aa8d191a5b5ea118281bfa410bdb2ee961c704.diff LOG: [Clang][docs] Update the release notes page to the new skeleton Was discussed at https://reviews.llvm.org/D142578. Added: Modified: clang/docs/ReleaseNotes.rst Removed: ################################################################################ diff --git a/clang/docs/ReleaseNotes.rst b/clang/docs/ReleaseNotes.rst index ab7518cc2dc6..abb6f0ae8e92 100644 --- a/clang/docs/ReleaseNotes.rst +++ b/clang/docs/ReleaseNotes.rst @@ -13,7 +13,7 @@ Written by the `LLVM Team <https://llvm.org/>`_ .. warning:: These are in-progress notes for the upcoming Clang |version| release. Release notes for previous releases can be found on - `the Download Page <https://releases.llvm.org/download.html>`_. + `the Releases Page <https://llvm.org/releases>`_. Introduction ============ @@ -23,25 +23,30 @@ frontend, part of the LLVM Compiler Infrastructure, release |release|. Here we describe the status of Clang in some detail, including major improvements from the previous release and new feature work. For the general LLVM release notes, see `the LLVM -documentation <https://llvm.org/docs/ReleaseNotes.html>`_. All LLVM -releases may be downloaded from the `LLVM releases web -site <https://llvm.org/releases/>`_. +documentation <https://llvm.org/docs/ReleaseNotes.html>`_. For the libc++ release notes, +see `this page <https://libcxx.llvm.org/ReleaseNotes.html>`_. All LLVM releases +may be downloaded from the `LLVM releases web site <https://llvm.org/releases/>`_. For more information about Clang or LLVM, including information about the latest release, please see the `Clang Web Site <https://clang.llvm.org>`_ or the `LLVM Web Site <https://llvm.org>`_. -Note that if you are reading this file from a Git checkout or the -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. + +C/C++ Language Potentially Breaking Changes +------------------------------------------- + +C++ Specific Potentially Breaking Changes +----------------------------------------- + +ABI Changes in This Version +--------------------------- + What's New in Clang |release|? ============================== Some of the major new features and improvements to Clang are listed @@ -49,33 +54,28 @@ here. Generic improvements to Clang as a whole or to its underlying infrastructure are described first, followed by language-specific sections with improvements to Clang's support for those languages. -Major New Features ------------------- +C++ Language Changes +-------------------- +- Improved ``-O0`` code generation for calls to ``std::forward_like``. Similarly to + ``std::move, std::forward`` et al. it is now treated as a compiler builtin and implemented + directly rather than instantiating the definition from the standard library. -Bug Fixes ---------- -- Fix crash on invalid code when looking up a destructor in a templated class - inside a namespace. This fixes - `Issue 59446 <https://github.com/llvm/llvm-project/issues/59446>`_. -- Fix crash when diagnosing incorrect usage of ``_Nullable`` involving alias - templates. This fixes - `Issue 60344 <https://github.com/llvm/llvm-project/issues/60344>`_. -- Fix confusing warning message when ``/clang:-x`` is passed in ``clang-cl`` - driver mode and emit an error which suggests using ``/TC`` or ``/TP`` - ``clang-cl`` options instead. This fixes - `Issue 59307 <https://github.com/llvm/llvm-project/issues/59307>`_. -- Fix crash when evaluating consteval constructor of derived class whose base - has more than one field. This fixes - `Issue 60166 <https://github.com/llvm/llvm-project/issues/60166>`_. +C++20 Feature Support +^^^^^^^^^^^^^^^^^^^^^ -Improvements to Clang's diagnostics -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -- We now generate a diagnostic for signed integer overflow due to unary minus - in a non-constant expression context. This fixes - `Issue 31643 <https://github.com/llvm/llvm-project/issues/31643>`_ -- Clang now warns by default for C++20 and later about deprecated capture of - ``this`` with a capture default of ``=``. This warning can be disabled with - ``-Wno-deprecated-this-capture``. +C++2b Feature Support +^^^^^^^^^^^^^^^^^^^^^ + +Resolutions to C++ Defect Reports +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +C Language Changes +------------------ + +C2x Feature Support +^^^^^^^^^^^^^^^^^^^ +- Implemented the ``unreachable`` macro in freestanding ``<stddef.h>`` for + `WG14 N2826 <https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2826.pdf>`_ Non-comprehensive list of changes in this release ------------------------------------------------- @@ -97,101 +97,107 @@ Modified Compiler Flags Removed Compiler Flags ------------------------- -New Pragmas in Clang --------------------- -- ... - Attribute Changes in Clang -------------------------- +- Introduced a new function attribute ``__attribute__((unsafe_buffer_usage))`` + to be worn by functions containing buffer operations that could cause out of + bounds memory accesses. It emits warnings at call sites to such functions when + the flag ``-Wunsafe-buffer-usage`` is enabled. +- ``__declspec`` attributes can now be used together with the using keyword. Before + the attributes on ``__declspec`` was ignored, while now it will be forwarded to the + point where the alias is used. -Introduced a new function attribute ``__attribute__((unsafe_buffer_usage))`` -to be worn by functions containing buffer operations that could cause out of -bounds memory accesses. It emits warnings at call sites to such functions when -the flag ``-Wunsafe-buffer-usage`` is enabled. +Improvements to Clang's diagnostics +----------------------------------- +- We now generate a diagnostic for signed integer overflow due to unary minus + in a non-constant expression context. + (`#31643 <https://github.com/llvm/llvm-project/issues/31643>`) +- Clang now warns by default for C++20 and later about deprecated capture of + ``this`` with a capture default of ``=``. This warning can be disabled with + ``-Wno-deprecated-this-capture``. -``__declspec`` attributes can now be used together with the using keyword. Before -the attributes on ``__declspec`` was ignored, while now it will be forwarded to the -point where the alias is used. +Bug Fixes in This Version +------------------------- -Windows Support ---------------- +- Fix crash when diagnosing incorrect usage of ``_Nullable`` involving alias + templates. + (`#60344 <https://github.com/llvm/llvm-project/issues/60344>`_) +- Fix confusing warning message when ``/clang:-x`` is passed in ``clang-cl`` + driver mode and emit an error which suggests using ``/TC`` or ``/TP`` + ``clang-cl`` options instead. + (`#59307 <https://github.com/llvm/llvm-project/issues/59307>`_) -AIX Support ------------ +Bug Fixes to Compiler Builtins +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -C Language Changes in Clang ---------------------------- +Bug Fixes to Attribute Support +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -C2x Feature Support -------------------- -- Implemented the ``unreachable`` macro in freestanding ``<stddef.h>`` for - `WG14 N2826 <https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2826.pdf>`_ +Bug Fixes to C++ Support +^^^^^^^^^^^^^^^^^^^^^^^^ -C++ Language Changes in Clang ------------------------------ -- Improved ``-O0`` code generation for calls to ``std::forward_like``. Similarly to - ``std::move, std::forward`` et al. it is now treated as a compiler builtin and implemented - directly rather than instantiating the definition from the standard library. +- Fix crash on invalid code when looking up a destructor in a templated class + inside a namespace. + (`#59446 <https://github.com/llvm/llvm-project/issues/59446>`_) +- Fix crash when evaluating consteval constructor of derived class whose base + has more than one field. + (`#60166 <https://github.com/llvm/llvm-project/issues/60166>`_) -C++20 Feature Support -^^^^^^^^^^^^^^^^^^^^^ +Bug Fixes to AST Handling +^^^^^^^^^^^^^^^^^^^^^^^^^ -C++2b Feature Support -^^^^^^^^^^^^^^^^^^^^^ +Miscellaneous Bug Fixes +^^^^^^^^^^^^^^^^^^^^^^^ -CUDA/HIP Language Changes in Clang ----------------------------------- +Miscellaneous Clang Crashes Fixed +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Objective-C Language Changes in Clang -------------------------------------- - -OpenCL C Language Changes in Clang ----------------------------------- +Target Specific Changes +----------------------- -... +X86 Support +^^^^^^^^^^^ -ABI Changes in Clang --------------------- +Arm and AArch64 Support +^^^^^^^^^^^^^^^^^^^^^^^ -OpenMP Support in Clang ------------------------ +- The hard-float ABI is now available in Armv8.1-M configurations that + have integer MVE instructions (and therefore have FP registers) but + no scalar or vector floating point computation. Previously, trying + to select the hard-float ABI on such a target (via + ``-mfloat-abi=hard`` or a triple ending in ``hf``) would silently + use the soft-float ABI instead. -... +- Clang builtin ``__arithmetic_fence`` and the command line option ``-fprotect-parens`` + are now enabled for AArch64. -CUDA Support in Clang ---------------------- +Windows Support +^^^^^^^^^^^^^^^ -LoongArch Support in Clang --------------------------- +LoongArch Support +^^^^^^^^^^^^^^^^^ -RISC-V Support in Clang ------------------------ +RISC-V Support +^^^^^^^^^^^^^^ - Added ``-mrvv-vector-bits=`` option to give an upper and lower bound on vector length. Valid values are powers of 2 between 64 and 65536. A value of 32 should eventually be supported. We also accept "zvl" to use the Zvl*b extension from ``-march`` or ``-mcpu`` to the be the upper and lower bound. -X86 Support in Clang --------------------- - -WebAssembly Support in Clang ----------------------------- +CUDA/HIP Language Changes +^^^^^^^^^^^^^^^^^^^^^^^^^ -DWARF Support in Clang ----------------------- +CUDA Support +^^^^^^^^^^^^ -Arm and AArch64 Support in Clang --------------------------------- +AIX Support +^^^^^^^^^^^ -- The hard-float ABI is now available in Armv8.1-M configurations that - have integer MVE instructions (and therefore have FP registers) but - no scalar or vector floating point computation. Previously, trying - to select the hard-float ABI on such a target (via - ``-mfloat-abi=hard`` or a triple ending in ``hf``) would silently - use the soft-float ABI instead. +WebAssembly Support +^^^^^^^^^^^^^^^^^^^ -- Clang builtin ``__arithmetic_fence`` and the command line option ``-fprotect-parens`` - are now enabled for AArch64. +DWARF Support in Clang +---------------------- Floating Point Support in Clang ------------------------------- @@ -199,12 +205,6 @@ Floating Point Support in Clang - Add ``__builtin_elementwise_log10`` builtin for floating point types only. - Add ``__builtin_elementwise_log2`` builtin for floating point types only. -Internal API Changes --------------------- - -Build System Changes --------------------- - AST Matchers ------------ @@ -216,9 +216,6 @@ clang-format put the initializers on the current line first, instead, it will try to put the initializers on the next line only. -clang-extdef-mapping --------------------- - libclang -------- @@ -234,25 +231,6 @@ Static Analyzer Sanitizers ---------- -Core Analysis Improvements -========================== - -- ... - -New Issues Found -================ - -- ... - -Python Binding Changes ----------------------- - -The following methods have been added: - -- ... - -Significant Known Problems -========================== Additional Information ====================== @@ -265,5 +243,5 @@ this release by going into the "``clang/docs/``" directory in the Clang tree. If you have any questions or comments about Clang, please feel free to -contact us on the Discourse forums (Clang Frontend category) +contact us on the `Discourse forums (Clang Frontend category) <https://discourse.llvm.org/c/clang/6>`_. _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits