| ==================================================== |
| Extra Clang Tools 13.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 13 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 13.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 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 <https://llvm.org/releases/>`_. |
| |
| What's New in Extra Clang Tools 13.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 |
| ------------------------- |
| |
| The improvements are... |
| |
| Improvements to clang-query |
| --------------------------- |
| |
| The improvements are... |
| |
| Improvements to clang-rename |
| ---------------------------- |
| |
| The improvements are... |
| |
| Improvements to clang-tidy |
| -------------------------- |
| |
| - The `run-clang-tidy.py` helper script is now installed in `bin/` as |
| `run-clang-tidy`. It was previously installed in `share/clang/`. |
| |
| - Added command line option `--fix-notes` to apply fixes found in notes |
| attached to warnings. These are typically cases where we are less confident |
| the fix will have the desired effect. |
| |
| - libToolingCore and Clang-Tidy was refactored and now checks can produce |
| highlights (`^~~~~` under fragments of the source code) in diagnostics. |
| Existing and new checks in the future can be expected to start implementing |
| this functionality. |
| This change only affects the visual rendering of diagnostics, and does not |
| alter the behavior of generated fixes. |
| |
| New checks |
| ^^^^^^^^^^ |
| |
| |
| - New :doc:`altera-id-dependent-backward-branch |
| <clang-tidy/checks/altera-id-dependent-backward-branch>` check. |
| |
| Finds ID-dependent variables and fields that are used within loops. This |
| causes branches to occur inside the loops, and thus leads to performance |
| degradation. |
| |
| - New :doc:`altera-unroll-loops |
| <clang-tidy/checks/altera-unroll-loops>` check. |
| |
| Finds inner loops that have not been unrolled, as well as fully unrolled |
| loops with unknown loops bounds or a large number of iterations. |
| |
| - New :doc:`bugprone-easily-swappable-parameters |
| <clang-tidy/checks/bugprone-easily-swappable-parameters>` check. |
| |
| Finds function definitions where parameters of convertible types follow each |
| other directly, making call sites prone to calling the function with |
| swapped (or badly ordered) arguments. |
| |
| - New :doc:`bugprone-implicit-widening-of-multiplication-result |
| <clang-tidy/checks/bugprone-implicit-widening-of-multiplication-result>` check. |
| |
| Diagnoses instances of an implicit widening of multiplication result. |
| |
| - New :doc:`bugprone-unhandled-exception-at-new |
| <clang-tidy/checks/bugprone-unhandled-exception-at-new>` check. |
| |
| Finds calls to ``new`` with missing exception handler for ``std::bad_alloc``. |
| |
| - New :doc:`concurrency-thread-canceltype-asynchronous |
| <clang-tidy/checks/concurrency-thread-canceltype-asynchronous>` check. |
| |
| Finds ``pthread_setcanceltype`` function calls where a thread's cancellation |
| type is set to asynchronous. |
| |
| - New :doc:`cppcoreguidelines-prefer-member-initializer |
| <clang-tidy/checks/cppcoreguidelines-prefer-member-initializer>` check. |
| |
| Finds member initializations in the constructor body which can be placed into |
| the initialization list instead. |
| |
| - New :doc:`readability-suspicious-call-argument |
| <clang-tidy/checks/readability-suspicious-call-argument>` check. |
| |
| Finds function calls where the arguments passed are provided out of order, |
| based on the difference between the argument name and the parameter names |
| of the function. |
| |
| New check aliases |
| ^^^^^^^^^^^^^^^^^ |
| |
| - New alias :doc:`cert-pos47-c |
| <clang-tidy/checks/cert-pos47-c>` to |
| :doc:`concurrency-thread-canceltype-asynchronous |
| <clang-tidy/checks/concurrency-thread-canceltype-asynchronous>` was added. |
| |
| |
| Changes in existing checks |
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| |
| - Improved :doc:`bugprone-signal-handler |
| <clang-tidy/checks/bugprone-signal-handler>` check. |
| |
| Added an option to choose the set of allowed functions. |
| |
| - Improved :doc:`cppcoreguidelines-init-variables |
| <clang-tidy/checks/cppcoreguidelines-init-variables>` check. |
| |
| Removed generating fixes for enums because the code generated was broken, |
| trying to initialize the enum from an integer. |
| |
| The check now also warns for uninitialized scoped enums. |
| |
| - Improved :doc:`readability-uniqueptr-delete-release |
| <clang-tidy/checks/readability-uniqueptr-delete-release>` check. |
| |
| Added an option to choose whether to refactor by calling the ``reset`` member |
| function or assignment to ``nullptr``. |
| Added support for pointers to ``std::unique_ptr``. |
| |
| |
| Removed checks |
| ^^^^^^^^^^^^^^ |
| |
| - The readability-deleted-default check has been removed. |
| |
| The clang warning `Wdefaulted-function-deleted |
| <https://clang.llvm.org/docs/DiagnosticsReference.html#wdefaulted-function-deleted>`_ |
| will diagnose the same issues and is enabled by default. |
| |
| 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 |
| ------------------------------- |