]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - docs/ReleaseNotes.rst
Vendor import of clang trunk r300422:
[FreeBSD/FreeBSD.git] / docs / ReleaseNotes.rst
1 =======================================
2 Clang 5.0.0 (In-Progress) Release Notes
3 =======================================
4
5 .. contents::
6    :local:
7    :depth: 2
8
9 Written by the `LLVM Team <http://llvm.org/>`_
10
11 .. warning::
12
13    These are in-progress notes for the upcoming Clang 5 release.
14    Release notes for previous releases can be found on
15    `the Download Page <http://releases.llvm.org/download.html>`_.
16
17 Introduction
18 ============
19
20 This document contains the release notes for the Clang C/C++/Objective-C
21 frontend, part of the LLVM Compiler Infrastructure, release 5.0.0. Here we
22 describe the status of Clang in some detail, including major
23 improvements from the previous release and new feature work. For the
24 general LLVM release notes, see `the LLVM
25 documentation <http://llvm.org/docs/ReleaseNotes.html>`_. All LLVM
26 releases may be downloaded from the `LLVM releases web
27 site <http://llvm.org/releases/>`_.
28
29 For more information about Clang or LLVM, including information about
30 the latest release, please check out the main please see the `Clang Web
31 Site <http://clang.llvm.org>`_ or the `LLVM Web
32 Site <http://llvm.org>`_.
33
34 Note that if you are reading this file from a Subversion checkout or the
35 main Clang web page, this document applies to the *next* release, not
36 the current one. To see the release notes for a specific release, please
37 see the `releases page <http://llvm.org/releases/>`_.
38
39 What's New in Clang 5.0.0?
40 ==========================
41
42 Some of the major new features and improvements to Clang are listed
43 here. Generic improvements to Clang as a whole or to its underlying
44 infrastructure are described first, followed by language-specific
45 sections with improvements to Clang's support for those languages.
46
47 Major New Features
48 ------------------
49
50 -  ...
51
52 Improvements to Clang's diagnostics
53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
54
55 -  -Wunused-lambda-capture warns when a variable explicitly captured
56    by a lambda is not used in the body of the lambda.
57
58 New Compiler Flags
59 ------------------
60
61 The option ....
62
63 New Pragmas in Clang
64 -----------------------
65
66 Clang now supports the ...
67
68
69 Attribute Changes in Clang
70 --------------------------
71
72 -  ...
73
74 Windows Support
75 ---------------
76
77 Clang's support for building native Windows programs ...
78
79
80 C Language Changes in Clang
81 ---------------------------
82
83 - ...
84
85 ...
86
87 C11 Feature Support
88 ^^^^^^^^^^^^^^^^^^^
89
90 ...
91
92 C++ Language Changes in Clang
93 -----------------------------
94
95 ...
96
97 C++1z Feature Support
98 ^^^^^^^^^^^^^^^^^^^^^
99
100 ...
101
102 Objective-C Language Changes in Clang
103 -------------------------------------
104
105 ...
106
107 OpenCL C Language Changes in Clang
108 ----------------------------------
109
110 ...
111
112 OpenMP Support in Clang
113 ----------------------------------
114
115 ...
116
117 Internal API Changes
118 --------------------
119
120 These are major API changes that have happened since the 4.0.0 release of
121 Clang. If upgrading an external codebase that uses Clang as a library,
122 this section should help get you past the largest hurdles of upgrading.
123
124 -  ...
125
126 AST Matchers
127 ------------
128
129 ...
130
131
132 clang-format
133 ------------
134
135 * Option **BreakBeforeInheritanceComma** added to break before ``:`` and ``,``  in case of
136   multiple inheritance in a class declaration. Enabled by default in the Mozilla coding style.
137
138   +---------------------+----------------------------------------+
139   | true                | false                                  |
140   +=====================+========================================+
141   | .. code-block:: c++ | .. code-block:: c++                    |
142   |                     |                                        |
143   |   class MyClass     |   class MyClass : public X, public Y { |
144   |       : public X    |   };                                   |
145   |       , public Y {  |                                        |
146   |   };                |                                        |
147   +---------------------+----------------------------------------+
148
149 * Align block comment decorations.
150
151   +----------------------+---------------------+
152   | Before               | After               |
153   +======================+=====================+
154   |  .. code-block:: c++ | .. code-block:: c++ |
155   |                      |                     |
156   |    /* line 1         |   /* line 1         |
157   |      * line 2        |    * line 2         |
158   |     */               |    */               |
159   +----------------------+---------------------+
160
161 * The :doc:`ClangFormatStyleOptions` documentation provides detailed examples for most options.
162
163 * Namespace end comments are now added or updated automatically.
164
165   +---------------------+---------------------+
166   | Before              | After               |
167   +=====================+=====================+
168   | .. code-block:: c++ | .. code-block:: c++ |
169   |                     |                     |
170   |   namespace A {     |   namespace A {     |
171   |   int i;            |   int i;            |
172   |   int j;            |   int j;            |
173   |   }                 |   }                 |
174   +---------------------+---------------------+
175
176 * Comment reflow support added. Overly long comment lines will now be reflown with the rest of
177   the paragraph instead of just broken. Option **ReflowComments** added and enabled by default.
178
179 libclang
180 --------
181
182 ...
183
184
185 Static Analyzer
186 ---------------
187
188 ...
189
190 Core Analysis Improvements
191 ==========================
192
193 - ...
194
195 New Issues Found
196 ================
197
198 - ...
199
200 Python Binding Changes
201 ----------------------
202
203 The following methods have been added:
204
205 -  ...
206
207 Significant Known Problems
208 ==========================
209
210 Additional Information
211 ======================
212
213 A wide variety of additional information is available on the `Clang web
214 page <http://clang.llvm.org/>`_. The web page contains versions of the
215 API documentation which are up-to-date with the Subversion version of
216 the source code. You can access versions of these documents specific to
217 this release by going into the "``clang/docs/``" directory in the Clang
218 tree.
219
220 If you have any questions or comments about Clang, please feel free to
221 contact us via the `mailing
222 list <http://lists.llvm.org/mailman/listinfo/cfe-dev>`_.