@@ -205,7 +205,7 @@ C Language Changes
205
205
``-Wunterminated-string-initialization ``. However, this diagnostic is not
206
206
silenced by the ``nonstring `` attribute as these initializations are always
207
207
incompatible with C++.
208
- - Added ``-Wjump-bypasses -init ``, which is off by default and grouped under
208
+ - Added ``-Wjump-misses -init ``, which is off by default and grouped under
209
209
``-Wc++-compat ``. It diagnoses when a jump (``goto `` to its label, ``switch ``
210
210
to its ``case ``) will bypass the initialization of a local variable, which is
211
211
invalid in C++.
@@ -241,6 +241,7 @@ C2y Feature Support
241
241
242
242
C23 Feature Support
243
243
^^^^^^^^^^^^^^^^^^^
244
+ - Clang now accepts ``-std=iso9899:2024 `` as an alias for C23.
244
245
- Added ``__builtin_c23_va_start() `` for compatibility with GCC and to enable
245
246
better diagnostic behavior for the ``va_start() `` macro in C23 and later.
246
247
This also updates the definition of ``va_start() `` in ``<stdarg.h> `` to use
@@ -254,7 +255,10 @@ C23 Feature Support
254
255
- Implemented `WG14 N3037 <https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3037.pdf >`_
255
256
which allows tag types to be redefined within the same translation unit so
256
257
long as both definitions are structurally equivalent (same tag types, same
257
- tag names, same tag members, etc).
258
+ tag names, same tag members, etc). As a result of this paper, ``-Wvisibility ``
259
+ is no longer diagnosed in C23 if the parameter is a complete tag type (it
260
+ does still fire when the parameter is an incomplete tag type as that cannot
261
+ be completed).
258
262
- Fixed a failed assertion with an invalid parameter to the ``#embed ``
259
263
directive. Fixes #GH126940.
260
264
@@ -283,6 +287,8 @@ Non-comprehensive list of changes in this release
283
287
stack space when running on Apple AArch64 based platforms. This means that
284
288
stack traces of Clang from debuggers, crashes, and profilers may look
285
289
different than before.
290
+ - Fixed a crash when a VLA with an invalid size expression was used within a
291
+ ``sizeof `` or ``typeof `` expression. (#GH138444)
286
292
287
293
New Compiler Flags
288
294
------------------
@@ -550,7 +556,9 @@ Bug Fixes in This Version
550
556
- Fixed visibility calculation for template functions. (#GH103477)
551
557
- Fixed a bug where an attribute before a ``pragma clang attribute `` or
552
558
``pragma clang __debug `` would cause an assertion. Instead, this now diagnoses
553
- the invalid attribute location appropriately. (#GH137861)
559
+ the invalid attribute location appropriately. (#GH137861)
560
+ - Fixed a crash when a malformed ``_Pragma `` directive appears as part of an
561
+ ``#include `` directive. (#GH138094)
554
562
555
563
Bug Fixes to Compiler Builtins
556
564
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -586,6 +594,9 @@ Bug Fixes to Attribute Support
586
594
``__attribute__((unused)) `` are still ignored after the definition, though
587
595
this behavior may be relaxed in the future). (#GH135481)
588
596
597
+ - Clang will warn if a complete type specializes a deprecated partial specialization.
598
+ (#GH44496)
599
+
589
600
Bug Fixes to C++ Support
590
601
^^^^^^^^^^^^^^^^^^^^^^^^
591
602
@@ -637,11 +648,13 @@ Bug Fixes to C++ Support
637
648
- Clang no longer crashes when establishing subsumption between some constraint expressions. (#GH122581)
638
649
- Clang now issues an error when placement new is used to modify a const-qualified variable
639
650
in a ``constexpr `` function. (#GH131432)
651
+ - Fixed an incorrect TreeTransform for calls to ``consteval `` functions if a conversion template is present. (#GH137885)
640
652
- Clang now emits a warning when class template argument deduction for alias templates is used in C++17. (#GH133806)
641
653
- Fix a crash when checking the template template parameters of a dependent lambda appearing in an alias declaration.
642
654
(#GH136432), (#GH137014), (#GH138018)
643
655
- Fixed an assertion when trying to constant-fold various builtins when the argument
644
656
referred to a reference to an incomplete type. (#GH129397)
657
+ - Fixed a crash when a cast involved a parenthesized aggregate initialization in dependent context. (#GH72880)
645
658
646
659
Bug Fixes to AST Handling
647
660
^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -798,6 +811,10 @@ libclang
798
811
- Fixed a buffer overflow in ``CXString `` implementation. The fix may result in
799
812
increased memory allocation.
800
813
814
+ - Deprecate ``clang_Cursor_GetBinaryOpcode `` and ``clang_Cursor_getBinaryOpcodeStr ``
815
+ implementations, which are duplicates of ``clang_getCursorBinaryOperatorKind ``
816
+ and ``clang_getBinaryOperatorKindSpelling `` respectively.
817
+
801
818
Code Completion
802
819
---------------
803
820
0 commit comments