forked from OSchip/llvm-project
260 lines
8.7 KiB
ReStructuredText
260 lines
8.7 KiB
ReStructuredText
====================================================
|
|
Extra Clang Tools 10.0.0 (In-Progress) Release Notes
|
|
====================================================
|
|
|
|
.. contents::
|
|
:local:
|
|
:depth: 3
|
|
|
|
Written by the `LLVM Team <https://llvm.org/>`_
|
|
|
|
.. warning::
|
|
|
|
These are in-progress notes for the upcoming Extra Clang Tools 10 release.
|
|
Release notes for previous releases can be found on
|
|
`the Download Page <https://releases.llvm.org/download.html>`_.
|
|
|
|
Introduction
|
|
============
|
|
|
|
This document contains the release notes for the Extra Clang Tools, part of the
|
|
Clang release 10.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 <https://llvm.org/releases/>`_.
|
|
|
|
For more information about Clang or LLVM, including information about
|
|
the latest release, please see the `Clang Web Site <https://clang.llvm.org>`_ or
|
|
the `LLVM Web Site <https://llvm.org>`_.
|
|
|
|
Note that if you are reading this file from a Subversion 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 <https://llvm.org/releases/>`_.
|
|
|
|
What's New in Extra Clang Tools 10.0.0?
|
|
=======================================
|
|
|
|
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
|
|
------------------
|
|
|
|
...
|
|
|
|
Improvements to clangd
|
|
----------------------
|
|
|
|
The improvements are...
|
|
|
|
Improvements to clang-doc
|
|
-------------------------
|
|
|
|
- :doc:`clang-doc <clang-doc>` now generates documentation in HTML format.
|
|
|
|
Improvements to clang-query
|
|
---------------------------
|
|
|
|
The improvements are...
|
|
|
|
Improvements to clang-rename
|
|
----------------------------
|
|
|
|
The improvements are...
|
|
|
|
Improvements to clang-tidy
|
|
--------------------------
|
|
|
|
- New :doc:`bugprone-bad-signal-to-kill-thread
|
|
<clang-tidy/checks/bugprone-bad-signal-to-kill-thread>` check.
|
|
|
|
Finds ``pthread_kill`` function calls when a thread is terminated by
|
|
raising ``SIGTERM`` signal.
|
|
|
|
- New :doc:`bugprone-dynamic-static-initializers
|
|
<clang-tidy/checks/bugprone-dynamic-static-initializers>` check.
|
|
|
|
Finds instances where variables with static storage are initialized
|
|
dynamically in header files.
|
|
|
|
- New :doc:`bugprone-infinite-loop
|
|
<clang-tidy/checks/bugprone-infinite-loop>` check.
|
|
|
|
Finds obvious infinite loops (loops where the condition variable is not
|
|
changed at all).
|
|
|
|
- New :doc:`bugprone-not-null-terminated-result
|
|
<clang-tidy/checks/bugprone-not-null-terminated-result>` check
|
|
|
|
Finds function calls where it is possible to cause a not null-terminated
|
|
result. Usually the proper length of a string is ``strlen(str) + 1`` or equal
|
|
length of this expression, because the null terminator needs an extra space.
|
|
Without the null terminator it can result in undefined behaviour when the
|
|
string is read.
|
|
|
|
- New :doc:`bugprone-signed-char-misuse
|
|
<clang-tidy/checks/bugprone-signed-char-misuse>` check.
|
|
|
|
Finds ``signed char`` -> integer conversions which might indicate a programming
|
|
error.
|
|
|
|
- New :doc:`cert-mem57-cpp
|
|
<clang-tidy/checks/cert-mem57-cpp>` check.
|
|
|
|
Checks if an object of type with extended alignment is allocated by using
|
|
the default ``operator new``.
|
|
|
|
- New alias :doc:`cert-pos44-c
|
|
<clang-tidy/checks/cert-pos44-c>` to
|
|
:doc:`bugprone-bad-signal-to-kill-thread
|
|
<clang-tidy/checks/bugprone-bad-signal-to-kill-thread>` was added.
|
|
|
|
- New :doc:`cert-oop58-cpp
|
|
<clang-tidy/checks/cert-oop58-cpp>` check.
|
|
|
|
Finds assignments to the copied object and its direct or indirect members
|
|
in copy constructors and copy assignment operators.
|
|
|
|
- New :doc:`cppcoreguidelines-init-variables
|
|
<clang-tidy/checks/cppcoreguidelines-init-variables>` check.
|
|
|
|
- New :doc:`darwin-dispatch-once-nonstatic
|
|
<clang-tidy/checks/darwin-dispatch-once-nonstatic>` check.
|
|
|
|
Finds declarations of ``dispatch_once_t`` variables without static or global
|
|
storage.
|
|
|
|
- New :doc:`google-upgrade-googletest-case
|
|
<clang-tidy/checks/google-upgrade-googletest-case>` check.
|
|
|
|
Finds uses of deprecated Googletest APIs with names containing ``case`` and
|
|
replaces them with equivalent APIs with ``suite``.
|
|
|
|
- Improved :doc:`hicpp-signed-bitwise
|
|
<clang-tidy/checks/hicpp-signed-bitwise>` check.
|
|
|
|
The check now supports the ``IgnorePositiveIntegerLiterals`` option.
|
|
|
|
- New :doc:`linuxkernel-must-use-errs
|
|
<clang-tidy/checks/linuxkernel-must-use-errs>` check.
|
|
|
|
Checks Linux kernel code to see if it uses the results from the functions in
|
|
``linux/err.h``.
|
|
|
|
- New :doc:`llvm-prefer-register-over-unsigned
|
|
<clang-tidy/checks/llvm-prefer-register-over-unsigned>` check.
|
|
|
|
Finds historical use of ``unsigned`` to hold vregs and physregs and rewrites
|
|
them to use ``Register``
|
|
|
|
- New :doc:`objc-missing-hash
|
|
<clang-tidy/checks/objc-missing-hash>` check.
|
|
|
|
Finds Objective-C implementations that implement ``-isEqual:`` without also
|
|
appropriately implementing ``-hash``.
|
|
|
|
- New :doc:`performance-no-automatic-move
|
|
<clang-tidy/checks/performance-no-automatic-move>` check.
|
|
|
|
Finds local variables that cannot be automatically moved due to constness.
|
|
|
|
- New :doc:`performance-trivially-destructible
|
|
<clang-tidy/checks/performance-trivially-destructible>` check.
|
|
|
|
Finds types that could be made trivially-destructible by removing out-of-line
|
|
defaulted destructor declarations.
|
|
|
|
- The :doc:`modernize-use-using
|
|
<clang-tidy/checks/modernize-use-using>` check now converts typedefs containing
|
|
struct definitions and multiple comma-separated types.
|
|
|
|
- Improved :doc:`bugprone-posix-return
|
|
<clang-tidy/checks/bugprone-posix-return>` check.
|
|
|
|
Now also checks if any calls to ``pthread_*`` functions expect negative return
|
|
values.
|
|
|
|
- The 'objc-avoid-spinlock' check was renamed to :doc:`darwin-avoid-spinlock
|
|
<clang-tidy/checks/darwin-avoid-spinlock>`
|
|
|
|
- The :doc:`modernize-use-equals-default
|
|
<clang-tidy/checks/modernize-use-equals-default>` fix no longer adds
|
|
semicolons where they would be redundant.
|
|
|
|
- New :doc:`readability-redundant-access-specifiers
|
|
<clang-tidy/checks/readability-redundant-access-specifiers>` check.
|
|
|
|
Finds classes, structs, and unions that contain redundant member
|
|
access specifiers.
|
|
|
|
- Improved :doc:`readability-magic-numbers
|
|
<clang-tidy/checks/readability-magic-numbers>` check.
|
|
|
|
The check now supports the ``IgnoreBitFieldsWidths`` option to suppress
|
|
the warning for numbers used to specify bit field widths.
|
|
|
|
The check was updated to eliminate some false positives (such as using
|
|
class enumeration as non-type template parameters, or the synthetically
|
|
computed lengh of a static user string literal.)
|
|
|
|
- New :doc:`readability-make-member-function-const
|
|
<clang-tidy/checks/readability-make-member-function-const>` check.
|
|
|
|
Finds non-static member functions that can be made ``const``
|
|
because the functions don't use ``this`` in a non-const way.
|
|
|
|
- Improved :doc:`modernize-use-override
|
|
<clang-tidy/checks/modernize-use-override>` check.
|
|
|
|
The check now supports the ``AllowOverrideAndFinal`` option to eliminate
|
|
conflicts with ``gcc -Wsuggest-override`` or ``gcc -Werror=suggest-override``.
|
|
|
|
- Improved :doc:`readability-redundant-member-init
|
|
<clang-tidy/checks/readability-redundant-member-init>` check.
|
|
|
|
The check now supports the ``IgnoreBaseInCopyConstructors`` option to avoid
|
|
`"base class 'Foo' should be explicitly initialized in the copy constructor"`
|
|
warnings or errors with ``gcc -Wextra`` or ``gcc -Werror=extra``.
|
|
|
|
- The :doc:`readability-redundant-string-init
|
|
<clang-tidy/checks/readability-redundant-string-init>` check now supports a
|
|
`StringNames` option enabling its application to custom string classes.
|
|
|
|
- Improved :doc:`modernize-avoid-bind
|
|
<clang-tidy/checks/modernize-avoid-bind>` check.
|
|
|
|
The check now supports supports diagnosing and fixing arbitrary callables instead of
|
|
only simple free functions. The `PermissiveParameterList` option has also been
|
|
added to address situations where the existing fix-it logic would sometimes generate
|
|
code that no longer compiles.
|
|
|
|
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
|
|
------------------------
|
|
|
|
The improvements are...
|
|
|
|
Clang-tidy visual studio plugin
|
|
-------------------------------
|
|
|
|
The clang-tidy-vs plugin has been removed from clang, as
|
|
it's no longer maintained. Users should migrate to
|
|
`Clang Power Tools <https://marketplace.visualstudio.com/items?itemName=caphyon.ClangPowerTools>`_
|
|
instead.
|