2016-07-19 02:08:59 +08:00
|
|
|
===================================================
|
2018-01-03 23:53:24 +08:00
|
|
|
Extra Clang Tools 7.0.0 (In-Progress) Release Notes
|
2016-07-19 02:08:59 +08:00
|
|
|
===================================================
|
2016-03-27 13:06:57 +08:00
|
|
|
|
|
|
|
.. contents::
|
|
|
|
:local:
|
2016-03-30 20:05:33 +08:00
|
|
|
:depth: 3
|
2016-03-27 13:06:57 +08:00
|
|
|
|
|
|
|
Written by the `LLVM Team <http://llvm.org/>`_
|
|
|
|
|
|
|
|
.. warning::
|
|
|
|
|
2018-01-03 23:53:24 +08:00
|
|
|
These are in-progress notes for the upcoming Extra Clang Tools 7 release.
|
2017-02-10 07:25:52 +08:00
|
|
|
Release notes for previous releases can be found on
|
|
|
|
`the Download Page <http://releases.llvm.org/download.html>`_.
|
2016-03-27 13:06:57 +08:00
|
|
|
|
|
|
|
Introduction
|
|
|
|
============
|
|
|
|
|
|
|
|
This document contains the release notes for the Extra Clang Tools, part of the
|
2018-01-03 23:53:24 +08:00
|
|
|
Clang release 7.0.0. Here we describe the status of the Extra Clang Tools in
|
2016-09-07 01:52:44 +08:00
|
|
|
some detail, including major improvements from the previous release and new
|
|
|
|
feature work. All LLVM releases may be downloaded from the `LLVM releases web
|
2016-03-27 13:06:57 +08:00
|
|
|
site <http://llvm.org/releases/>`_.
|
|
|
|
|
|
|
|
For more information about Clang or LLVM, including information about
|
|
|
|
the latest release, please see the `Clang Web Site <http://clang.llvm.org>`_ or
|
|
|
|
the `LLVM Web Site <http://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 <http://llvm.org/releases/>`_.
|
|
|
|
|
2018-01-03 23:53:24 +08:00
|
|
|
What's New in Extra Clang Tools 7.0.0?
|
2016-07-19 02:08:59 +08:00
|
|
|
======================================
|
2016-03-27 13:06:57 +08:00
|
|
|
|
|
|
|
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
|
|
|
|
------------------
|
|
|
|
|
2016-07-19 02:08:59 +08:00
|
|
|
...
|
2016-03-27 13:06:57 +08:00
|
|
|
|
2016-03-30 20:05:33 +08:00
|
|
|
Improvements to clang-query
|
|
|
|
---------------------------
|
2016-03-27 13:06:57 +08:00
|
|
|
|
|
|
|
The improvements are...
|
|
|
|
|
2016-03-30 20:05:33 +08:00
|
|
|
Improvements to clang-rename
|
|
|
|
----------------------------
|
2016-03-27 13:06:57 +08:00
|
|
|
|
2017-01-13 05:58:40 +08:00
|
|
|
The improvements are...
|
2016-03-27 13:06:57 +08:00
|
|
|
|
2016-03-30 20:05:33 +08:00
|
|
|
Improvements to clang-tidy
|
|
|
|
--------------------------
|
2016-03-27 13:06:57 +08:00
|
|
|
|
2018-01-30 22:55:50 +08:00
|
|
|
- The 'misc-string-compare' check was renamed to `readability-string-compare
|
|
|
|
<http://clang.llvm.org/extra/clang-tidy/checks/readability-string-compare.html>`_
|
|
|
|
|
[clang-tidy] implement check for goto
The usage of `goto` is discourage in C++ since forever. This check implements
a warning for every `goto`. Even though there are (rare) valid use cases for
`goto`, better high level constructs should be used.
`goto` is used sometimes in C programs to free resources at the end of
functions in the case of errors. This pattern is better implemented with
RAII in C++.
Reviewers: aaron.ballman, alexfh, hokein
Reviewed By: aaron.ballman
Subscribers: lebedev.ri, jbcoe, Eugene.Zelenko, klimek, nemanjai, mgorny, xazax.hun, kbarton, cfe-commits
Differential Revision: https://reviews.llvm.org/D41815
llvm-svn: 322626
2018-01-17 18:27:41 +08:00
|
|
|
- New `cppcoreguidelines-avoid-goto
|
|
|
|
<http://clang.llvm.org/extra/clang-tidy/checks/cppcoreguidelines-avoid-goto.html>`_ check
|
|
|
|
|
|
|
|
The usage of ``goto`` for control flow is error prone and should be replaced
|
|
|
|
with looping constructs. Every backward jump is rejected. Forward jumps are
|
|
|
|
only allowed in nested loops.
|
2018-01-20 07:59:59 +08:00
|
|
|
|
|
|
|
- New `fuchsia-multiple-inheritance
|
|
|
|
<http://clang.llvm.org/extra/clang-tidy/checks/fuchsia-multiple-inheritance.html>`_ check
|
|
|
|
|
|
|
|
Warns if a class inherits from multiple classes that are not pure virtual.
|
[clang-tidy] implement check for goto
The usage of `goto` is discourage in C++ since forever. This check implements
a warning for every `goto`. Even though there are (rare) valid use cases for
`goto`, better high level constructs should be used.
`goto` is used sometimes in C programs to free resources at the end of
functions in the case of errors. This pattern is better implemented with
RAII in C++.
Reviewers: aaron.ballman, alexfh, hokein
Reviewed By: aaron.ballman
Subscribers: lebedev.ri, jbcoe, Eugene.Zelenko, klimek, nemanjai, mgorny, xazax.hun, kbarton, cfe-commits
Differential Revision: https://reviews.llvm.org/D41815
llvm-svn: 322626
2018-01-17 18:27:41 +08:00
|
|
|
|
2018-01-12 05:17:43 +08:00
|
|
|
- New `fuchsia-statically-constructed-objects
|
|
|
|
<http://clang.llvm.org/extra/clang-tidy/checks/fuchsia-statically-constructed-objects.html>`_ check
|
|
|
|
|
|
|
|
Warns if global, non-trivial objects with static storage are constructed, unless the
|
|
|
|
object is statically initialized with a ``constexpr`` constructor or has no
|
|
|
|
explicit constructor.
|
2018-01-18 05:18:15 +08:00
|
|
|
|
|
|
|
- New `fuchsia-trailing-return
|
|
|
|
<http://clang.llvm.org/extra/clang-tidy/checks/fuchsia-trailing-return.html>`_ check
|
|
|
|
|
|
|
|
Functions that have trailing returns are disallowed, except for those
|
|
|
|
using decltype specifiers and lambda with otherwise unutterable
|
|
|
|
return types.
|
|
|
|
|
[clang-tidy] implement check for goto
The usage of `goto` is discourage in C++ since forever. This check implements
a warning for every `goto`. Even though there are (rare) valid use cases for
`goto`, better high level constructs should be used.
`goto` is used sometimes in C programs to free resources at the end of
functions in the case of errors. This pattern is better implemented with
RAII in C++.
Reviewers: aaron.ballman, alexfh, hokein
Reviewed By: aaron.ballman
Subscribers: lebedev.ri, jbcoe, Eugene.Zelenko, klimek, nemanjai, mgorny, xazax.hun, kbarton, cfe-commits
Differential Revision: https://reviews.llvm.org/D41815
llvm-svn: 322626
2018-01-17 18:27:41 +08:00
|
|
|
- New alias `hicpp-avoid-goto
|
|
|
|
<http://clang.llvm.org/extra/clang-tidy/checks/hicpp-avoid-goto.html>`_ to
|
|
|
|
`cppcoreguidelines-avoid-goto <http://clang.llvm.org/extra/clang-tidy/checks/cppcoreguidelines-avoid-goto.html>`_
|
|
|
|
added.
|
|
|
|
|
2016-07-22 08:34:42 +08:00
|
|
|
Improvements to include-fixer
|
|
|
|
-----------------------------
|
2016-03-30 20:05:33 +08:00
|
|
|
|
2017-01-13 05:58:40 +08:00
|
|
|
The improvements are...
|
2016-03-30 20:05:33 +08:00
|
|
|
|
|
|
|
Improvements to modularize
|
|
|
|
--------------------------
|
2016-03-27 13:06:57 +08:00
|
|
|
|
|
|
|
The improvements are...
|