diff options
Diffstat (limited to 'clang/docs/ReleaseNotes.rst')
-rw-r--r-- | clang/docs/ReleaseNotes.rst | 49 |
1 files changed, 20 insertions, 29 deletions
diff --git a/clang/docs/ReleaseNotes.rst b/clang/docs/ReleaseNotes.rst index ef2d9b8..529dd78 100644 --- a/clang/docs/ReleaseNotes.rst +++ b/clang/docs/ReleaseNotes.rst @@ -62,21 +62,6 @@ Clang Frontend Potentially Breaking Changes of ``-Wno-gnu-binary-literal`` will no longer silence this pedantic warning, which may break existing uses with ``-Werror``. -Target OS macros extension -^^^^^^^^^^^^^^^^^^^^^^^^^^ -A new Clang extension (see :ref:`here <target_os_detail>`) is enabled for -Darwin (Apple platform) targets. Clang now defines ``TARGET_OS_*`` macros for -these targets, which could break existing code bases with improper checks for -the ``TARGET_OS_`` macros. For example, existing checks might fail to include -the ``TargetConditionals.h`` header from Apple SDKs and therefore leaving the -macros undefined and guarded code unexercised. - -Affected code should be checked to see if it's still intended for the specific -target and fixed accordingly. - -The extension can be turned off by the option ``-fno-define-target-os-macros`` -as a workaround. - What's New in Clang |release|? ============================== Some of the major new features and improvements to Clang are listed @@ -98,8 +83,6 @@ C++20 Feature Support - Implemented the `__is_layout_compatible` intrinsic to support `P0466R5: Layout-compatibility and Pointer-interconvertibility Traits <https://wg21.link/P0466R5>`_. - Note: `CWG2759: [[no_unique_address] and common initial sequence <https://cplusplus.github.io/CWG/issues/2759.html>`_ - is not yet implemented. C++23 Feature Support ^^^^^^^^^^^^^^^^^^^^^ @@ -123,6 +106,10 @@ Resolutions to C++ Defect Reports of two types. (`CWG1719: Layout compatibility and cv-qualification revisited <https://cplusplus.github.io/CWG/issues/1719.html>`_). +- ``[[no_unique_address]]`` is now respected when evaluating layout + compatibility of two types. + (`CWG2759: [[no_unique_address] and common initial sequence <https://cplusplus.github.io/CWG/issues/2759.html>`_). + C Language Changes ------------------ @@ -161,17 +148,6 @@ Non-comprehensive list of changes in this release New Compiler Flags ------------------ -.. _target_os_detail: - -Target OS macros extension -^^^^^^^^^^^^^^^^^^^^^^^^^^ -A pair of new flags ``-fdefine-target-os-macros`` and -``-fno-define-target-os-macros`` has been added to Clang to enable/disable the -extension to provide built-in definitions of a list of ``TARGET_OS_*`` macros -based on the target triple. - -The extension is enabled by default for Darwin (Apple platform) targets. - Deprecated Compiler Flags ------------------------- @@ -296,11 +272,15 @@ Bug Fixes to C++ Support local variable, which is supported as a C11 extension in C++. Previously, it was only accepted at namespace scope but not at local function scope. - Clang no longer tries to call consteval constructors at runtime when they appear in a member initializer. - (`#782154 <https://github.com/llvm/llvm-project/issues/82154>`_`) + (`#82154 <https://github.com/llvm/llvm-project/issues/82154>`_`) - Fix crash when using an immediate-escalated function at global scope. (`#82258 <https://github.com/llvm/llvm-project/issues/82258>`_) - Correctly immediate-escalate lambda conversion functions. (`#82258 <https://github.com/llvm/llvm-project/issues/82258>`_) +- Fixed an issue where template parameters of a nested abbreviated generic lambda within + a requires-clause lie at the same depth as those of the surrounding lambda. This, + in turn, results in the wrong template argument substitution during constraint checking. + (`#78524 <https://github.com/llvm/llvm-project/issues/78524>`_) Bug Fixes to AST Handling ^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -326,6 +306,17 @@ X86 Support Arm and AArch64 Support ^^^^^^^^^^^^^^^^^^^^^^^ +- ARMv7+ targets now default to allowing unaligned access, except Armv6-M, and + Armv8-M without the Main Extension. Baremetal targets should check that the + new default will work with their system configurations, since it requires + that SCTLR.A is 0, SCTLR.U is 1, and that the memory in question is + configured as "normal" memory. This brings Clang in-line with the default + settings for GCC and Arm Compiler. Aside from making Clang align with other + compilers, changing the default brings major performance and code size + improvements for most targets. We have not changed the default behavior for + ARMv6, but may revisit that decision in the future. Users can restore the old + behavior with -m[no-]unaligned-access. + Android Support ^^^^^^^^^^^^^^^ |