@@ -99,6 +99,20 @@ C++ Specific Potentially Breaking Changes
9999 // Was error, now evaluates to false.
100100 constexpr bool b = f() == g();
101101
102+ - The warning ``-Wdeprecated-literal-operator `` is now on by default, as this is
103+ something that WG21 has shown interest in removing from the language. The
104+ result is that anyone who is compiling with ``-Werror `` should see this
105+ diagnostic. To fix this diagnostic, simply removing the space character from
106+ between the ``operator"" `` and the user defined literal name will make the
107+ source no longer deprecated. This is consistent with `CWG2521 <https://cplusplus.github.io/CWG/issues/2521.html>_ `.
108+
109+ .. code-block :: c++
110+
111+ // Now diagnoses by default.
112+ unsigned operator"" _udl_name(unsigned long long);
113+ // Fixed version:
114+ unsigned operator""_udl_name(unsigned long long);
115+
102116ABI Changes in This Version
103117---------------------------
104118
@@ -171,13 +185,12 @@ C++23 Feature Support
171185^^^^^^^^^^^^^^^^^^^^^
172186- Removed the restriction to literal types in constexpr functions in C++23 mode.
173187
188+ - Extend lifetime of temporaries in mem-default-init for P2718R0. Clang now fully
189+ supports `P2718R0 Lifetime extension in range-based for loops <https://wg21.link/P2718R0 >`_.
190+
174191C++20 Feature Support
175192^^^^^^^^^^^^^^^^^^^^^
176193
177- C++17 Feature Support
178- ^^^^^^^^^^^^^^^^^^^^^
179- - The implementation of the relaxed template template argument matching rules is
180- more complete and reliable, and should provide more accurate diagnostics.
181194
182195Resolutions to C++ Defect Reports
183196^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -204,8 +217,7 @@ Resolutions to C++ Defect Reports
204217 (`CWG2351: void{} <https://cplusplus.github.io/CWG/issues/2351.html >`_).
205218
206219- Clang now has improved resolution to CWG2398, allowing class templates to have
207- default arguments deduced when partial ordering, and better backwards compatibility
208- in overload resolution.
220+ default arguments deduced when partial ordering.
209221
210222- Clang now allows comparing unequal object pointers that have been cast to ``void * ``
211223 in constant expressions. These comparisons always worked in non-constant expressions.
@@ -217,6 +229,10 @@ Resolutions to C++ Defect Reports
217229- Clang now allows trailing requires clause on explicit deduction guides.
218230 (`CWG2707: Deduction guides cannot have a trailing requires-clause <https://cplusplus.github.io/CWG/issues/2707.html >`_).
219231
232+ - Clang now diagnoses a space in the first production of a ``literal-operator-id ``
233+ by default.
234+ (`CWG2521: User-defined literals and reserved identifiers <https://cplusplus.github.io/CWG/issues/2521.html >`_).
235+
220236C Language Changes
221237------------------
222238
@@ -336,10 +352,6 @@ Improvements to Clang's diagnostics
336352
337353- Clang now diagnoses when the result of a [[nodiscard]] function is discarded after being cast in C. Fixes #GH104391.
338354
339- - Clang now properly explains the reason a template template argument failed to
340- match a template template parameter, in terms of the C++17 relaxed matching rules
341- instead of the old ones.
342-
343355- Don't emit duplicated dangling diagnostics. (#GH93386).
344356
345357- Improved diagnostic when trying to befriend a concept. (#GH45182).
@@ -384,6 +396,10 @@ Improvements to Clang's diagnostics
384396- The warning for an unsupported type for a named register variable is now phrased ``unsupported type for named register variable ``,
385397 instead of ``bad type for named register variable ``. This makes it clear that the type is not supported at all, rather than being
386398 suboptimal in some way the error fails to mention (#GH111550).
399+
400+ - Clang now emits a ``-Wdepredcated-literal-operator `` diagnostic, even if the
401+ name was a reserved name, which we improperly allowed to suppress the
402+ diagnostic.
387403
388404Improvements to Clang's time-trace
389405----------------------------------
@@ -449,8 +465,6 @@ Bug Fixes to C++ Support
449465- Correctly check constraints of explicit instantiations of member functions. (#GH46029)
450466- When performing partial ordering of function templates, clang now checks that
451467 the deduction was consistent. Fixes (#GH18291).
452- - Fixes to several issues in partial ordering of template template parameters, which
453- were documented in the test suite.
454468- Fixed an assertion failure about a constraint of a friend function template references to a value with greater
455469 template depth than the friend function template. (#GH98258)
456470- Clang now rebuilds the template parameters of out-of-line declarations and specializations in the context
@@ -633,6 +647,9 @@ AST Matchers
633647
634648- Fixed a crash when traverse lambda expr with invalid captures. (#GH106444)
635649
650+ - Ensure ``hasName `` matches template specializations across inline namespaces,
651+ making `matchesNodeFullSlow ` and `matchesNodeFullFast ` consistent.
652+
636653clang-format
637654------------
638655
0 commit comments