blob: f7e31e5c98d53b05e461a64c1edc6fa039062d93 [file] [log] [blame]
Hans Wennborg60d06bf2016-07-18 18:05:19 +00001=======================================
Hans Wennborg159d6ad2017-01-12 21:55:16 +00002Clang 5.0.0 (In-Progress) Release Notes
Hans Wennborg60d06bf2016-07-18 18:05:19 +00003=======================================
Sean Silvafe251442012-12-23 01:19:35 +00004
5.. contents::
6 :local:
7 :depth: 2
8
9Written by the `LLVM Team <http://llvm.org/>`_
10
11.. warning::
12
Hans Wennborg189f1f32017-02-09 23:26:34 +000013 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>`_.
Sean Silvafe251442012-12-23 01:19:35 +000016
17Introduction
18============
19
20This document contains the release notes for the Clang C/C++/Objective-C
Hans Wennborg159d6ad2017-01-12 21:55:16 +000021frontend, part of the LLVM Compiler Infrastructure, release 5.0.0. Here we
Sean Silvafe251442012-12-23 01:19:35 +000022describe the status of Clang in some detail, including major
23improvements from the previous release and new feature work. For the
24general LLVM release notes, see `the LLVM
25documentation <http://llvm.org/docs/ReleaseNotes.html>`_. All LLVM
26releases may be downloaded from the `LLVM releases web
27site <http://llvm.org/releases/>`_.
28
29For more information about Clang or LLVM, including information about
30the latest release, please check out the main please see the `Clang Web
31Site <http://clang.llvm.org>`_ or the `LLVM Web
32Site <http://llvm.org>`_.
33
34Note that if you are reading this file from a Subversion checkout or the
35main Clang web page, this document applies to the *next* release, not
36the current one. To see the release notes for a specific release, please
37see the `releases page <http://llvm.org/releases/>`_.
38
Hans Wennborg159d6ad2017-01-12 21:55:16 +000039What's New in Clang 5.0.0?
Hans Wennborg60d06bf2016-07-18 18:05:19 +000040==========================
Sean Silvafe251442012-12-23 01:19:35 +000041
42Some of the major new features and improvements to Clang are listed
43here. Generic improvements to Clang as a whole or to its underlying
44infrastructure are described first, followed by language-specific
45sections with improvements to Clang's support for those languages.
46
47Major New Features
48------------------
49
Hans Wennborg60d06bf2016-07-18 18:05:19 +000050- ...
Rafael Espindola34970692013-12-12 16:07:11 +000051
Sean Silvafe251442012-12-23 01:19:35 +000052Improvements to Clang's diagnostics
53^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
54
Malcolm Parsonsc6e45832017-01-13 18:55:32 +000055- -Wunused-lambda-capture warns when a variable explicitly captured
56 by a lambda is not used in the body of the lambda.
Sean Silvafe251442012-12-23 01:19:35 +000057
Sean Silvafe251442012-12-23 01:19:35 +000058New Compiler Flags
59------------------
60
Sylvestre Ledruf6b48972016-11-12 10:37:17 +000061The option ....
62
Tyler Nowickidb2668a2014-06-18 00:51:32 +000063New Pragmas in Clang
64-----------------------
65
Rafael Espindolaaf742502014-08-22 21:59:11 +000066Clang now supports the ...
Mark Heffernanbd26f5e2014-07-21 18:08:34 +000067
Paul Robinsonf9ede1c2016-07-18 17:19:12 +000068
69Attribute Changes in Clang
70--------------------------
71
Hans Wennborg60d06bf2016-07-18 18:05:19 +000072- ...
Paul Robinsonf9ede1c2016-07-18 17:19:12 +000073
Hans Wennborg02dc0002014-08-05 00:21:23 +000074Windows Support
75---------------
76
Rafael Espindolaaf742502014-08-22 21:59:11 +000077Clang's support for building native Windows programs ...
Hans Wennborg02dc0002014-08-05 00:21:23 +000078
79
Renato Golinf2fcddb2013-12-13 09:27:34 +000080C Language Changes in Clang
81---------------------------
82
Hans Wennborg60d06bf2016-07-18 18:05:19 +000083- ...
Pirama Arumuga Nainarc85c8532016-06-21 16:09:30 +000084
Renato Golinf2fcddb2013-12-13 09:27:34 +000085...
86
Sean Silvafe251442012-12-23 01:19:35 +000087C11 Feature Support
88^^^^^^^^^^^^^^^^^^^
89
90...
91
92C++ Language Changes in Clang
93-----------------------------
94
Richard Smith8eb53c82016-05-05 18:40:37 +000095...
96
97C++1z Feature Support
Sean Silvafe251442012-12-23 01:19:35 +000098^^^^^^^^^^^^^^^^^^^^^
99
100...
101
102Objective-C Language Changes in Clang
103-------------------------------------
104
105...
106
Erik Schnetter489700d2013-11-11 06:36:33 +0000107OpenCL C Language Changes in Clang
108----------------------------------
109
Bill Wendling0a794a4b2013-11-20 10:13:37 +0000110...
Erik Schnetter489700d2013-11-11 06:36:33 +0000111
Alexey Bataev44b67502016-05-31 11:17:08 +0000112OpenMP Support in Clang
113----------------------------------
114
Hans Wennborg60d06bf2016-07-18 18:05:19 +0000115...
Alexey Bataev44b67502016-05-31 11:17:08 +0000116
Sean Silvafe251442012-12-23 01:19:35 +0000117Internal API Changes
118--------------------
119
Hans Wennborg159d6ad2017-01-12 21:55:16 +0000120These are major API changes that have happened since the 4.0.0 release of
Sean Silvafe251442012-12-23 01:19:35 +0000121Clang. If upgrading an external codebase that uses Clang as a library,
122this section should help get you past the largest hurdles of upgrading.
123
Vedant Kumar5fb00e42016-07-27 23:01:55 +0000124- ...
Richard Smitha0334a92015-05-14 00:22:12 +0000125
Aaron Ballmancdc43af2015-09-17 13:47:22 +0000126AST Matchers
127------------
Aaron Ballmancdc43af2015-09-17 13:47:22 +0000128
129...
130
Sylvestre Ledru72e3fa72017-03-14 09:43:55 +0000131
132clang-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
Jonathan Roelofs335777b2017-03-20 17:07:49 +0000138 +---------------------+----------------------------------------+
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 +---------------------+----------------------------------------+
Sylvestre Ledru72e3fa72017-03-14 09:43:55 +0000148
Krasimir Georgiev18f4aed2017-03-14 10:34:39 +0000149* Align block comment decorations.
Sylvestre Ledru72e3fa72017-03-14 09:43:55 +0000150
Jonathan Roelofs335777b2017-03-20 17:07:49 +0000151 +----------------------+---------------------+
152 | Before | After |
153 +======================+=====================+
154 | .. code-block:: c++ | .. code-block:: c++ |
155 | | |
156 | /* line 1 | /* line 1 |
157 | * line 2 | * line 2 |
158 | */ | */ |
159 +----------------------+---------------------+
Sylvestre Ledru72e3fa72017-03-14 09:43:55 +0000160
Krasimir Georgiev18f4aed2017-03-14 10:34:39 +0000161* The :doc:`ClangFormatStyleOptions` documentation provides detailed examples for most options.
162
163* Namespace end comments are now added or updated automatically.
164
Jonathan Roelofs335777b2017-03-20 17:07:49 +0000165 +---------------------+---------------------+
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 +---------------------+---------------------+
Krasimir Georgiev18f4aed2017-03-14 10:34:39 +0000175
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.
Sylvestre Ledru72e3fa72017-03-14 09:43:55 +0000178
Ted Kremenek3a2291b2013-04-24 07:33:52 +0000179libclang
180--------
181
Bill Wendling61f44cc2013-06-04 06:17:46 +0000182...
Ted Kremenek3a2291b2013-04-24 07:33:52 +0000183
Sylvestre Ledruea49d3a2016-08-06 20:23:54 +0000184
Anna Zaksb6219a92013-04-25 23:14:38 +0000185Static Analyzer
Ted Kremenek004e8232013-04-26 00:01:34 +0000186---------------
Anna Zaksb6219a92013-04-25 23:14:38 +0000187
Bill Wendling0a794a4b2013-11-20 10:13:37 +0000188...
Ted Kremenek004e8232013-04-26 00:01:34 +0000189
190Core Analysis Improvements
191==========================
192
Bill Wendling61f44cc2013-06-04 06:17:46 +0000193- ...
Ted Kremenek004e8232013-04-26 00:01:34 +0000194
195New Issues Found
196================
197
Bill Wendling61f44cc2013-06-04 06:17:46 +0000198- ...
Anna Zaksb6219a92013-04-25 23:14:38 +0000199
Sean Silvafe251442012-12-23 01:19:35 +0000200Python Binding Changes
201----------------------
202
203The following methods have been added:
204
205- ...
206
207Significant Known Problems
208==========================
209
210Additional Information
211======================
212
213A wide variety of additional information is available on the `Clang web
214page <http://clang.llvm.org/>`_. The web page contains versions of the
215API documentation which are up-to-date with the Subversion version of
216the source code. You can access versions of these documents specific to
217this release by going into the "``clang/docs/``" directory in the Clang
218tree.
219
220If you have any questions or comments about Clang, please feel free to
221contact us via the `mailing
Tanya Lattner4a08e932015-08-05 03:55:23 +0000222list <http://lists.llvm.org/mailman/listinfo/cfe-dev>`_.