| ==================================================== |
| 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 checks |
| ^^^^^^^^^^ |
| |
| - 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. |
| |
| - New :doc:`bugprone-signed-char-misuse |
| <clang-tidy/checks/bugprone-signed-char-misuse>` check. |
| |
| Finds ``signed char`` to 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 :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. |
| |
| Checks whether there are local variables that are declared without an initial |
| value. |
| |
| - 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``. |
| |
| - 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. |
| |
| - 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. |
| |
| - New :doc:`readability-qualified-auto |
| <clang-tidy/checks/readability-qualified-auto>` check. |
| |
| Adds pointer and ``const`` qualifications to ``auto``-typed variables |
| that are deduced to pointers and ``const`` pointers. |
| |
| - 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. |
| |
| New aliases |
| ^^^^^^^^^^^ |
| |
| - 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 alias :doc:`llvm-qualified-auto |
| <clang-tidy/checks/llvm-qualified-auto>` to |
| :doc:`readability-qualified-auto |
| <clang-tidy/checks/readability-qualified-auto>` was added. |
| |
| Changes in existing checks |
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| |
| - 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. |
| |
| - Improved :doc:`hicpp-signed-bitwise |
| <clang-tidy/checks/hicpp-signed-bitwise>` check. |
| |
| The check now supports the `IgnorePositiveIntegerLiterals` option. |
| |
| - 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. |
| |
| - The :doc:`modernize-use-equals-default |
| <clang-tidy/checks/modernize-use-equals-default>` fix no longer adds |
| semicolons where they would be redundant. |
| |
| - 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`. |
| |
| - 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:`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 length of a static user string literal.) |
| |
| - 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. |
| |
| Renamed checks |
| ^^^^^^^^^^^^^^ |
| |
| - The 'objc-avoid-spinlock' check was renamed to :doc:`darwin-avoid-spinlock |
| <clang-tidy/checks/darwin-avoid-spinlock>` |
| |
| 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. |