- Introduction
- What's New in Extra Clang Tools 14.0.0?
- Major New Features
- Improvements to clangd
- Improvements to clang-doc
- Improvements to clang-query
- Improvements to clang-rename
- Improvements to clang-tidy
- Improvements to include-fixer
- Improvements to clang-include-fixer
- Improvements to modularize
- Improvements to pp-trace
- Clang-tidy Visual Studio plugin
Written by the LLVM Team
Warning
These are in-progress notes for the upcoming Extra Clang Tools 14 release. Release notes for previous releases can be found on the Download Page.
This document contains the release notes for the Extra Clang Tools, part of the Clang release 14.0.0. 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.
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.
...
The improvements are...
The improvements are...
The improvements are...
The improvements are...
- Make the cppcoreguidelines-pro-bounds-array-to-pointer-decay check accept string literal to pointer decay in conditional operator even if operands are of the same length.
- Ignore warnings from macros defined in system headers, if not using the -system-headers flag.
- Added support for globbing in NOLINT* expressions, to simplify suppressing multiple warnings in the same line.
- Added support for NOLINTBEGIN ... NOLINTEND comments to suppress Clang-Tidy warnings over multiple lines.
- Generalized the modernize-use-default-member-init check to handle non-default constructors.
- Eliminated false positives for cppcoreguidelines-macro-usage by restricting the warning about using constants to only macros that expand to literals.
New :doc:`bugprone-stringview-nullptr <clang-tidy/checks/bugprone-stringview-nullptr>` check.
Checks for various ways that the
const CharT*
constructor ofstd::basic_string_view
can be passed a null argument.New :doc:`abseil-cleanup-ctad <clang-tidy/checks/abseil-cleanup-ctad>` check.
Suggests switching the initialization pattern of
absl::Cleanup
instances from the factory function to class template argument deduction (CTAD), in C++17 and higher.-
Finds potentially incorrect calls to
memcmp()
based on properties of the arguments. -
Finds virtual classes whose destructor is neither public and virtual nor protected and non-virtual.
New :doc:`misc-misleading-identifier <clang-tidy/checks/misc-misleading-identifier>` check.
Reports identifier with unicode right-to-left characters.
New :doc:`readability-container-data-pointer <clang-tidy/checks/readability-container-data-pointer>` check.
Finds cases where code could use
data()
rather than the address of the element at index 0 in a container.New :doc:`readability-identifier-length <clang-tidy/checks/readability-identifier-length>` check.
Reports identifiers whose names are too short. Currently checks local variables and function parameters only.
New :doc:`misc-misleading-bidirectional <clang-tidy/checks/misc-misleading-bidirectional>` check.
Inspects string literal and comments for unterminated bidirectional Unicode characters.
- New alias :doc:`cert-err33-c <clang-tidy/checks/cert-err33-c>` to :doc:`bugprone-unused-return-value <clang-tidy/checks/bugprone-unused-return-value>` was added.
- New alias :doc:`cert-exp42-c <clang-tidy/checks/cert-exp42-c>` to :doc:`bugprone-suspicious-memory-comparison <clang-tidy/checks/bugprone-suspicious-memory-comparison>` was added.
- New alias :doc:`cert-flp37-c <clang-tidy/checks/cert-flp37-c>` to :doc:`bugprone-suspicious-memory-comparison <clang-tidy/checks/bugprone-suspicious-memory-comparison>` was added.
Removed default setting
cppcoreguidelines-explicit-virtual-functions.IgnoreDestructors = "true"
, to match the current state of the C++ Core Guidelines.Updated :doc:`google-readability-casting <clang-tidy/checks/google-readability-casting>` to diagnose and fix functional casts, to achieve feature parity with the corresponding
cpplint.py
check.Fixed a false positive in :doc:`fuchsia-trailing-return <clang-tidy/checks/fuchsia-trailing-return>` for C++17 deduction guides.
Fixed a false positive in :doc:`bugprone-throw-keyword-missing <clang-tidy/checks/bugprone-throw-keyword-missing>` when creating an exception object using placement new
:doc:`cppcoreguidelines-narrowing-conversions <clang-tidy/checks/cppcoreguidelines-narrowing-conversions>` check now supports a WarnOnIntegerToFloatingPointNarrowingConversion option to control whether to warn on narrowing integer to floating-point conversions.
Improved :doc:`performance-move-const-arg` check.
Removed a wrong FixIt for trivially copyable objects wrapped by
std::move()
and passed to an rvalue reference parameter. Removal ofstd::move()
would break the code.
The improvements are...
The improvements are...
The improvements are...
The improvements are...