Extra Clang Tools 20.0.0git (In-Progress) Release Notes

Written by the LLVM Team

Warning

These are in-progress notes for the upcoming Extra Clang Tools 20 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 20.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 20.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

  • The clang-pseudo tool is incomplete and does not have active maintainers, so it has been removed. See the RFC for more details.

Improvements to clangd

Inlay hints

  • Added DefaultArguments Inlay Hints option.

Diagnostics

Semantic Highlighting

Compile flags

Hover

Code completion

  • Added completion for C++20 keywords.

Code actions

  • Added Swap operands tweak for certain binary operators.

  • Improved the extract-to-function code action to allow extracting statements with overloaded operators like << of std::ostream.

Signature help

Cross-references

Objective-C

Miscellaneous

  • The DefineOutline tweak now handles member functions of class templates.

Improvements to clang-doc

Improvements to clang-query

  • Added set enable-profile true/false command for basic matcher profiling.

Improvements to clang-tidy

  • Improved clang-tidy’s –verify-config flag by adding support for the configuration options of the Clang Static Analyzer Checks.

  • Improved run-clang-tidy.py script. Fixed minor shutdown noise happening on certain platforms when interrupting the script.

  • Improved clang-tidy by accepting parameters file in command line.

  • Removed clang-tidy’s global options for most of checks. All options are changed to local options except IncludeStyle, StrictMode and IgnoreMacros. Global scoped StrictMode and IgnoreMacros are deprecated and will be removed in further releases.

Check

Options removed from global option

bugprone-reserved-identifier

AggressiveDependentMemberLookup

bugprone-unchecked-optional-access

IgnoreSmartPointerDereference

cppcoreguidelines-pro-type-member-init

UseAssignment

cppcoreguidelines-rvalue-reference-param-not-moved

AllowPartialMove; IgnoreUnnamedParams; IgnoreNonDeducedTemplateTypes

misc-include-cleaner

IgnoreHeaders; DeduplicateFindings

performance-inefficient-vector-operation

EnableProto

readability-identifier-naming

AggressiveDependentMemberLookup

readability-inconsistent-declaration-parameter-name

Strict

readability-redundant-access-specifiers

CheckFirstDeclaration

readability-redundant-casting

IgnoreTypeAliases

New checks

New check aliases

Changes in existing checks

Removed checks

Miscellaneous

Improvements to include-fixer

The improvements are…

Improvements to clang-include-fixer

The improvements are…

Improvements to modularize

The improvements are…

Improvements to pp-trace

Clang-tidy Visual Studio plugin