=========================================== Clang |release| |ReleaseNotesTitle| =========================================== .. contents:: :local: :depth: 2 Written by the `LLVM Team `_ .. only:: PreRelease .. warning:: These are in-progress notes for the upcoming Clang |version| release. Release notes for previous releases can be found on `the Releases Page `_. Introduction ============ This document contains the release notes for the Clang C/C++/Objective-C 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 `_. For the libc++ release notes, see `this page `_. All LLVM releases may be downloaded from the `LLVM releases web site `_. For more information about Clang or LLVM, including information about the latest release, please see the `Clang Web Site `_ or the `LLVM Web Site `_. 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 --------------------------- AST Dumping Potentially Breaking Changes ---------------------------------------- What's New in Clang |release|? ============================== Some of the major new features and improvements to Clang are listed 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. C++ Language Changes -------------------- C++20 Feature Support ^^^^^^^^^^^^^^^^^^^^^ C++23 Feature Support ^^^^^^^^^^^^^^^^^^^^^ C++2c Feature Support ^^^^^^^^^^^^^^^^^^^^^ - Implemented `P2662R3 Pack Indexing `_. Resolutions to C++ Defect Reports ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Substitute template parameter pack, when it is not explicitly specified in the template parameters, but is deduced from a previous argument. (`#78449: `_). C Language Changes ------------------ C23 Feature Support ^^^^^^^^^^^^^^^^^^^ Non-comprehensive list of changes in this release ------------------------------------------------- New Compiler Flags ------------------ Deprecated Compiler Flags ------------------------- Modified Compiler Flags ----------------------- Removed Compiler Flags ------------------------- Attribute Changes in Clang -------------------------- Improvements to Clang's diagnostics ----------------------------------- Improvements to Clang's time-trace ---------------------------------- Bug Fixes in This Version ------------------------- Bug Fixes to Compiler Builtins ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Bug Fixes to Attribute Support ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Bug Fixes to C++ Support ^^^^^^^^^^^^^^^^^^^^^^^^ - Fix crash when using lifetimebound attribute in function with trailing return. Fixes (`#73619 `_) - Fix a crash when specializing an out-of-line member function with a default parameter where we did an incorrect specialization of the initialization of the default parameter. Fixes (`#68490 `_) - Fixed a bug where variables referenced by requires-clauses inside nested generic lambdas were not properly injected into the constraint scope. (`#73418 `_) Bug Fixes to AST Handling ^^^^^^^^^^^^^^^^^^^^^^^^^ Miscellaneous Bug Fixes ^^^^^^^^^^^^^^^^^^^^^^^ Miscellaneous Clang Crashes Fixed ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ OpenACC Specific Changes ------------------------ Target Specific Changes ----------------------- AMDGPU Support ^^^^^^^^^^^^^^ X86 Support ^^^^^^^^^^^ Arm and AArch64 Support ^^^^^^^^^^^^^^^^^^^^^^^ Android Support ^^^^^^^^^^^^^^^ Windows Support ^^^^^^^^^^^^^^^ LoongArch Support ^^^^^^^^^^^^^^^^^ RISC-V Support ^^^^^^^^^^^^^^ - ``__attribute__((rvv_vector_bits(N)))`` is now supported for RVV vbool*_t types. CUDA/HIP Language Changes ^^^^^^^^^^^^^^^^^^^^^^^^^ CUDA Support ^^^^^^^^^^^^ AIX Support ^^^^^^^^^^^ WebAssembly Support ^^^^^^^^^^^^^^^^^^^ AVR Support ^^^^^^^^^^^ DWARF Support in Clang ---------------------- Floating Point Support in Clang ------------------------------- AST Matchers ------------ clang-format ------------ libclang -------- Static Analyzer --------------- New features ^^^^^^^^^^^^ Crash and bug fixes ^^^^^^^^^^^^^^^^^^^ Improvements ^^^^^^^^^^^^ - Support importing C++20 modules in clang-repl. Moved checkers ^^^^^^^^^^^^^^ .. _release-notes-sanitizers: Sanitizers ---------- Python Binding Changes ---------------------- Additional Information ====================== A wide variety of additional information is available on the `Clang web page `_. The web page contains versions of the API documentation which are up-to-date with the Git version of the source code. You can access versions of these documents specific to 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) `_.