1===================================================
2Extra Clang Tools 7.0.0 (In-Progress) Release Notes
3===================================================
4
5.. contents::
6   :local:
7   :depth: 3
8
9Written by the `LLVM Team <http://llvm.org/>`_
10
11.. warning::
12
13   These are in-progress notes for the upcoming Extra Clang Tools 7 release.
14   Release notes for previous releases can be found on
15   `the Download Page <http://releases.llvm.org/download.html>`_.
16
17Introduction
18============
19
20This document contains the release notes for the Extra Clang Tools, part of the
21Clang release 7.0.0. Here we describe the status of the Extra Clang Tools in
22some detail, including major improvements from the previous release and new
23feature work. All LLVM releases may be downloaded from the `LLVM releases web
24site <http://llvm.org/releases/>`_.
25
26For more information about Clang or LLVM, including information about
27the latest release, please see the `Clang Web Site <http://clang.llvm.org>`_ or
28the `LLVM Web Site <http://llvm.org>`_.
29
30Note that if you are reading this file from a Subversion checkout or the
31main Clang web page, this document applies to the *next* release, not
32the current one. To see the release notes for a specific release, please
33see the `releases page <http://llvm.org/releases/>`_.
34
35What's New in Extra Clang Tools 7.0.0?
36======================================
37
38Some of the major new features and improvements to Extra Clang Tools are listed
39here. Generic improvements to Extra Clang Tools as a whole or to its underlying
40infrastructure are described first, followed by tool-specific sections.
41
42Major New Features
43------------------
44
45...
46
47Improvements to clang-query
48---------------------------
49
50The improvements are...
51
52Improvements to clang-rename
53----------------------------
54
55The improvements are...
56
57Improvements to clang-tidy
58--------------------------
59
60- The 'misc-incorrect-roundings' check was renamed to `bugprone-incorrect-roundings
61  <http://clang.llvm.org/extra/clang-tidy/checks/bugprone-incorrect-roundings.html>`_
62
63- The 'misc-string-compare' check was renamed to `readability-string-compare
64  <http://clang.llvm.org/extra/clang-tidy/checks/readability-string-compare.html>`_
65
66- New `cppcoreguidelines-avoid-goto
67  <http://clang.llvm.org/extra/clang-tidy/checks/cppcoreguidelines-avoid-goto.html>`_ check
68
69  The usage of ``goto`` for control flow is error prone and should be replaced
70  with looping constructs. Every backward jump is rejected. Forward jumps are
71  only allowed in nested loops.
72
73- New `fuchsia-multiple-inheritance
74  <http://clang.llvm.org/extra/clang-tidy/checks/fuchsia-multiple-inheritance.html>`_ check
75
76  Warns if a class inherits from multiple classes that are not pure virtual.
77
78- New `fuchsia-statically-constructed-objects
79  <http://clang.llvm.org/extra/clang-tidy/checks/fuchsia-statically-constructed-objects.html>`_ check
80
81  Warns if global, non-trivial objects with static storage are constructed, unless the
82  object is statically initialized with a ``constexpr`` constructor or has no
83  explicit constructor.
84
85- New `fuchsia-trailing-return
86  <http://clang.llvm.org/extra/clang-tidy/checks/fuchsia-trailing-return.html>`_ check
87
88  Functions that have trailing returns are disallowed, except for those
89  using decltype specifiers and lambda with otherwise unutterable
90  return types.
91
92- New `readability-simd-intrinsics
93  <http://clang.llvm.org/extra/clang-tidy/checks/readability-simd-intrinsics.html>`_ check
94
95  Warns if SIMD intrinsics are used which can be replaced by
96  ``std::experimental::simd`` operations.
97
98- New alias `hicpp-avoid-goto
99  <http://clang.llvm.org/extra/clang-tidy/checks/hicpp-avoid-goto.html>`_ to
100  `cppcoreguidelines-avoid-goto <http://clang.llvm.org/extra/clang-tidy/checks/cppcoreguidelines-avoid-goto.html>`_
101  added.
102
103- New `bugprone-throw-keyword-missing
104  <http://clang.llvm.org/extra/clang-tidy/checks/bugprone-throw-keyword-missing.html>`_ check
105
106  Diagnoses when a temporary object that appears to be an exception is constructed but not thrown.
107
108- New `modernize-use-uncaught-exceptions
109  <http://clang.llvm.org/extra/clang-tidy/checks/modernize-use-uncaught-exceptions.html>`_ check
110
111  Finds and replaces deprecated uses of std::uncaught_exception to std::uncaught_exceptions()
112
113Improvements to include-fixer
114-----------------------------
115
116The improvements are...
117
118Improvements to modularize
119--------------------------
120
121The improvements are...
122