| =================================================== |
| Extra Clang Tools 9.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 9 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 9.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 9.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 |
| -------------------------- |
| |
| - New OpenMP module. |
| |
| For checks specific to `OpenMP <https://www.openmp.org/>`_ API. |
| |
| - New :doc:`abseil-duration-addition |
| <clang-tidy/checks/abseil-duration-addition>` check. |
| |
| Checks for cases where addition should be performed in the ``absl::Time`` |
| domain. |
| |
| - New :doc:`abseil-duration-conversion-cast |
| <clang-tidy/checks/abseil-duration-conversion-cast>` check. |
| |
| Checks for casts of ``absl::Duration`` conversion functions, and recommends |
| the right conversion function instead. |
| |
| - New :doc:`abseil-duration-unnecessary-conversion |
| <clang-tidy/checks/abseil-duration-unnecessary-conversion>` check. |
| |
| Finds and fixes cases where ``absl::Duration`` values are being converted to |
| numeric types and back again. |
| |
| - New :doc:`abseil-time-comparison |
| <clang-tidy/checks/abseil-time-comparison>` check. |
| |
| Prefer comparisons in the ``absl::Time`` domain instead of the integer |
| domain. |
| |
| - New :doc:`abseil-time-subtraction |
| <clang-tidy/checks/abseil-time-subtraction>` check. |
| |
| Finds and fixes ``absl::Time`` subtraction expressions to do subtraction |
| in the Time domain instead of the numeric domain. |
| |
| - New :doc:`android-cloexec-pipe |
| <clang-tidy/checks/android-cloexec-pipe>` check. |
| |
| This check detects usage of ``pipe()``. |
| |
| - New :doc:`android-cloexec-pipe2 |
| <clang-tidy/checks/android-cloexec-pipe2>` check. |
| |
| This checks ensures that ``pipe2()`` is called with the ``O_CLOEXEC`` flag. |
| |
| - New :doc:`bugprone-branch-clone |
| <clang-tidy/checks/bugprone-branch-clone>` check. |
| |
| Checks for repeated branches in ``if/else if/else`` chains, consecutive |
| repeated branches in ``switch`` statements and indentical true and false |
| branches in conditional operators. |
| |
| - New :doc:`bugprone-posix-return |
| <clang-tidy/checks/bugprone-posix-return>` check. |
| |
| Checks if any calls to POSIX functions (except ``posix_openpt``) expect negative |
| return values. |
| |
| - New :doc:`bugprone-unhandled-self-assignment |
| <clang-tidy/checks/bugprone-unhandled-self-assignment>` check. |
| |
| Finds user-defined copy assignment operators which do not protect the code |
| against self-assignment either by checking self-assignment explicitly or |
| using the copy-and-swap or the copy-and-move method. |
| |
| - New :doc:`fuchsia-default-arguments-calls |
| <clang-tidy/checks/fuchsia-default-arguments-calls>` check. |
| |
| Warns if a function or method is called with default arguments. |
| This was previously done by `fuchsia-default-arguments check`, which has been |
| removed. |
| |
| - New :doc:`fuchsia-default-arguments-declarations |
| <clang-tidy/checks/fuchsia-default-arguments-declarations>` check. |
| |
| Warns if a function or method is declared with default parameters. |
| This was previously done by `fuchsia-default-arguments check` check, which has |
| been removed. |
| |
| - New :doc:`google-objc-avoid-nsobject-new |
| <clang-tidy/checks/google-objc-avoid-nsobject-new>` check. |
| |
| Checks for calls to ``+new`` or overrides of it, which are prohibited by the |
| Google Objective-C style guide. |
| |
| - New :doc:`google-readability-avoid-underscore-in-googletest-name |
| <clang-tidy/checks/google-readability-avoid-underscore-in-googletest-name>` |
| check. |
| |
| Checks whether there are underscores in googletest test and test case names in |
| test macros, which is prohibited by the Googletest FAQ. |
| |
| - New :doc:`llvm-prefer-isa-or-dyn-cast-in-conditionals |
| <clang-tidy/checks/llvm-prefer-isa-or-dyn-cast-in-conditionals>` check. |
| |
| Looks at conditionals and finds and replaces cases of ``cast<>``, |
| which will assert rather than return a null pointer, and |
| ``dyn_cast<>`` where the return value is not captured. Additionally, |
| finds and replaces cases that match the pattern ``var && |
| isa<X>(var)``, where ``var`` is evaluated twice. |
| |
| - New :doc:`modernize-use-trailing-return-type |
| <clang-tidy/checks/modernize-use-trailing-return-type>` check. |
| |
| Rewrites function signatures to use a trailing return type. |
| |
| - New :doc:`objc-super-self <clang-tidy/checks/objc-super-self>` check. |
| |
| Finds invocations of ``-self`` on super instances in initializers of |
| subclasses of ``NSObject`` and recommends calling a superclass initializer |
| instead. |
| |
| - New :doc:`openmp-exception-escape |
| <clang-tidy/checks/openmp-exception-escape>` check. |
| |
| Analyzes OpenMP Structured Blocks and checks that no exception escapes |
| out of the Structured Block it was thrown in. |
| |
| - New :doc:`openmp-use-default-none |
| <clang-tidy/checks/openmp-use-default-none>` check. |
| |
| Finds OpenMP directives that are allowed to contain a ``default`` clause, |
| but either don't specify it or the clause is specified but with the kind |
| other than ``none``, and suggests to use the ``default(none)`` clause. |
| |
| - New :doc:`readability-convert-member-functions-to-static |
| <clang-tidy/checks/readability-convert-member-functions-to-static>` check. |
| |
| Finds non-static member functions that can be made ``static``. |
| |
| - New alias :doc:`cert-oop54-cpp |
| <clang-tidy/checks/cert-oop54-cpp>` to |
| :doc:`bugprone-unhandled-self-assignment |
| <clang-tidy/checks/bugprone-unhandled-self-assignment>` was added. |
| |
| - New alias :doc:`cppcoreguidelines-explicit-virtual-functions |
| <clang-tidy/checks/cppcoreguidelines-explicit-virtual-functions>` to |
| :doc:`modernize-use-override |
| <clang-tidy/checks/modernize-use-override>` was added. |
| |
| - The :doc:`bugprone-argument-comment |
| <clang-tidy/checks/bugprone-argument-comment>` now supports |
| `CommentBoolLiterals`, `CommentIntegerLiterals`, `CommentFloatLiterals`, |
| `CommentUserDefiniedLiterals`, `CommentStringLiterals`, |
| `CommentCharacterLiterals` & `CommentNullPtrs` options. |
| |
| - The :doc:`bugprone-too-small-loop-variable |
| <clang-tidy/checks/bugprone-too-small-loop-variable>` now supports |
| `MagnitudeBitsUpperLimit` option. The default value was set to 16, |
| which greatly reduces warnings related to loops which are unlikely to |
| cause an actual functional bug. |
| |
| - Added `UseAssignment` option to :doc:`cppcoreguidelines-pro-type-member-init |
| <clang-tidy/checks/cppcoreguidelines-pro-type-member-init>` |
| |
| If set to true, the check will provide fix-its with literal initializers |
| (``int i = 0;``) instead of curly braces (``int i{};``). |
| |
| - The `fuchsia-default-arguments` check has been removed. |
| |
| Warnings of function or method calls and declarations with default arguments |
| were moved to :doc:`fuchsia-default-arguments-calls |
| <clang-tidy/checks/fuchsia-default-arguments-calls>` and |
| :doc:`fuchsia-default-arguments-declarations |
| <clang-tidy/checks/fuchsia-default-arguments-declarations>` checks |
| respectively. |
| |
| - The :doc:`google-runtime-int <clang-tidy/checks/google-runtime-int>` |
| check has been disabled in Objective-C++. |
| |
| - The :doc:`modernize-use-override |
| <clang-tidy/checks/modernize-use-override>` now supports `OverrideSpelling` |
| and `FinalSpelling` options. |
| |
| - The :doc:`misc-throw-by-value-catch-by-reference |
| <clang-tidy/checks/misc-throw-by-value-catch-by-reference>` now supports |
| `WarnOnLargeObject` and `MaxSize` options to warn on any large trivial |
| object caught by value. |
| |
| - The `Acronyms` and `IncludeDefaultAcronyms` options for the |
| :doc:`objc-property-declaration <clang-tidy/checks/objc-property-declaration>` |
| check have been removed. |
| |
| 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 |
| ------------------------ |
| |
| - Added a new option `-callbacks` to filter preprocessor callbacks. It replaces |
| the `-ignore` option. |