blob: af7aa5e91e54e0287b9972da9175bb66b597918f [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
138 .. code-block:: c++
139
140 true: false:
141 class MyClass vs. class MyClass : public X, public Y {
142 : public X };
143 , public Y {
144 };
145
146* Align block comment decorations
147
148 .. code-block:: c++
149
150 /* line 1
151 * line 2
152 */
153
154* The :doc:`ClangFormatStyleOptions` documentation provides detailled examples for most options.
155
Ted Kremenek3a2291b2013-04-24 07:33:52 +0000156libclang
157--------
158
Bill Wendling61f44cc2013-06-04 06:17:46 +0000159...
Ted Kremenek3a2291b2013-04-24 07:33:52 +0000160
Sylvestre Ledruea49d3a2016-08-06 20:23:54 +0000161
Anna Zaksb6219a92013-04-25 23:14:38 +0000162Static Analyzer
Ted Kremenek004e8232013-04-26 00:01:34 +0000163---------------
Anna Zaksb6219a92013-04-25 23:14:38 +0000164
Bill Wendling0a794a4b2013-11-20 10:13:37 +0000165...
Ted Kremenek004e8232013-04-26 00:01:34 +0000166
167Core Analysis Improvements
168==========================
169
Bill Wendling61f44cc2013-06-04 06:17:46 +0000170- ...
Ted Kremenek004e8232013-04-26 00:01:34 +0000171
172New Issues Found
173================
174
Bill Wendling61f44cc2013-06-04 06:17:46 +0000175- ...
Anna Zaksb6219a92013-04-25 23:14:38 +0000176
Sean Silvafe251442012-12-23 01:19:35 +0000177Python Binding Changes
178----------------------
179
180The following methods have been added:
181
182- ...
183
184Significant Known Problems
185==========================
186
187Additional Information
188======================
189
190A wide variety of additional information is available on the `Clang web
191page <http://clang.llvm.org/>`_. The web page contains versions of the
192API documentation which are up-to-date with the Subversion version of
193the source code. You can access versions of these documents specific to
194this release by going into the "``clang/docs/``" directory in the Clang
195tree.
196
197If you have any questions or comments about Clang, please feel free to
198contact us via the `mailing
Tanya Lattner4a08e932015-08-05 03:55:23 +0000199list <http://lists.llvm.org/mailman/listinfo/cfe-dev>`_.