=================================================== Extra Clang Tools 5.0.0 (In-Progress) Release Notes =================================================== .. contents:: :local: :depth: 3 Written by the `LLVM Team `_ .. warning:: These are in-progress notes for the upcoming Extra Clang Tools 5 release. Release notes for previous releases can be found on `the Download Page `_. Introduction ============ This document contains the release notes for the Extra Clang Tools, part of the Clang release 5.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 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 `_. What's New in Extra Clang Tools 5.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 clang-query --------------------------- The improvements are... Improvements to clang-rename ---------------------------- The improvements are... Improvements to clang-tidy -------------------------- - New `android-file-open-flag `_ check Checks if the required file flag ``O_CLOEXEC`` exists in ``open()``, ``open64()`` and ``openat()``. - New `cert-dcl21-cpp `_ check Checks if the overloaded postfix ``operator++/--`` returns a constant object. - New `cert-dcl58-cpp `_ check Finds modification of the ``std`` or ``posix`` namespace. - Improved `cppcoreguidelines-no-malloc `_ check Allow custom memory management functions to be considered as well. - New `misc-forwarding-reference-overload `_ check Finds perfect forwarding constructors that can unintentionally hide copy or move constructors. - New `misc-lambda-function-name `_ check Finds uses of ``__func__`` or ``__FUNCTION__`` inside lambdas. - New `modernize-replace-random-shuffle `_ check Finds and fixes usage of ``std::random_shuffle`` as the function has been removed from C++17. - New `modernize-return-braced-init-list `_ check Finds and replaces explicit calls to the constructor in a return statement by a braced initializer list so that the return type is not needlessly repeated. - Improved `modernize-use-emplace `_ check Removes unnecessary ``std::make_pair`` and ``std::make_tuple`` calls in push_back calls and turns them into emplace_back. The check now also is able to remove user-defined make functions from ``push_back`` calls on containers of custom tuple-like types by providing `TupleTypes` and `TupleMakeFunctions`. - New `modernize-use-noexcept `_ check Replaces dynamic exception specifications with ``noexcept`` or a user defined macro. - New `performance-inefficient-vector-operation `_ check Finds possible inefficient vector operations in for loops that may cause unnecessary memory reallocations. - Added `NestingThreshold` to `readability-function-size `_ check Finds compound statements which create next nesting level after `NestingThreshold` and emits a warning. - Added `ParameterThreshold` to `readability-function-size `_ check Finds functions that have more than `ParameterThreshold` parameters and emits a warning. - New `readability-misleading-indentation `_ check Finds misleading indentation where braces should be introduced or the code should be reformatted. - Support clang-formatting of the code around applied fixes (``-format-style`` command-line option). - New `hicpp` module Adds checks that implement the `High Integrity C++ Coding Standard `_ and other safety standards. Many checks are aliased to other modules. Improvements to include-fixer ----------------------------- The improvements are... Improvements to modularize -------------------------- The improvements are...