Extra Clang Tools 23.0.0git (In-Progress) Release Notes¶
Written by the LLVM Team
Warning
These are in-progress notes for the upcoming Extra Clang Tools 23 release. Release notes for previous releases can be found on the Download Page.
Introduction¶
This document contains the release notes for the Extra Clang Tools, part of the Clang release 23.0.0git. Here we describe the status of the Extra Clang Tools in some detail, including major improvements from the previous release and new feature work. 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.
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.
What’s New in Extra Clang Tools 23.0.0git?¶
Some of the major new features and improvements to Extra Clang Tools are listed here. Generic improvements to Extra Clang Tools as a whole or to its underlying infrastructure are described first, followed by tool-specific sections.
Major New Features¶
Potentially Breaking Changes¶
Improvements to clangd¶
Inlay hints¶
Diagnostics¶
Semantic Highlighting¶
Compile flags¶
Hover¶
Code completion¶
Code actions¶
Signature help¶
Cross-references¶
Objective-C¶
Miscellaneous¶
Improvements to clang-doc¶
Improvements to clang-query¶
Improvements to clang-tidy¶
New checks¶
New llvm-use-vector-utils check.
Finds calls to
llvm::to_vector(llvm::map_range(...))andllvm::to_vector(llvm::make_filter_range(...))that can be replaced withllvm::map_to_vectorandllvm::filter_to_vector.New modernize-use-string-view check.
Looks for functions returning
std::[w|u8|u16|u32]stringand suggests to change it tostd::[...]string_viewfor performance reasons if possible.New performance-string-view-conversions check.
Finds and removes redundant conversions from
std::[w|u8|u16|u32]string_viewtostd::[...]stringin call expressions expectingstd::[...]string_view.
New check aliases¶
Changes in existing checks¶
Improved bugprone-macro-parentheses check by printing the macro definition in the warning message if the macro is defined on command line.
Improved bugprone-unsafe-functions check by adding the function
std::get_temporary_bufferto the default list of unsafe functions. (This function is unsafe, useless, deprecated in C++17 and removed in C++20).Improved bugprone-use-after-move check by including the name of the invalidating function in the warning message when a custom invalidation function is used (via the InvalidationFunctions option).
Improved llvm-use-ranges check by adding support for the following algorithms:
std::accumulate,std::replace_copy, andstd::replace_copy_if.Improved misc-const-correctness check:
Added support for analyzing function parameters with the AnalyzeParameters option.
Improved modernize-use-std-format check by fixing a crash when an argument is part of a macro expansion.
Improved modernize-use-using check by avoiding the generation of invalid code for function types with redundant parentheses.
Improved performance-enum-size check:
Exclude
enuminextern "C"blocks.Improved the ignore list to correctly handle
typedefandenum.
Improved performance-move-const-arg check by avoiding false positives on trivially copyable types with a non-public copy constructor.
Improved readability-enum-initial-value check: the warning message now uses separate note diagnostics for each uninitialized enumerator, making it easier to see which specific enumerators need explicit initialization.