blob: fe4b3784b610103ec227e1bb4a56478b5223a407 [file] [log] [blame]
Hans Wennborg60d06bf2016-07-18 18:05:19 +00001=======================================
2Clang 4.0.0 (In-Progress) Release Notes
3=======================================
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 Wennborg60d06bf2016-07-18 18:05:19 +000013 These are in-progress notes for the upcoming Clang 4.0.0 release. You may
Sylvestre Ledru503d95d2016-11-12 10:38:18 +000014 prefer the `Clang 3.9 Release Notes
15 <http://llvm.org/releases/3.9.0/tools/clang/docs/ReleaseNotes.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 Wennborg60d06bf2016-07-18 18:05:19 +000021frontend, part of the LLVM Compiler Infrastructure, release 4.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 Wennborg60d06bf2016-07-18 18:05:19 +000039What's New in Clang 4.0.0?
40==========================
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
George Burgess IV8af74a42017-01-09 05:58:18 +000050- The ``diagnose_if`` attribute has been added to clang. This attribute allows
51 clang to emit a warning or error if a function call meets one or more
52 user-specified conditions.
53
Hans Wennborg60d06bf2016-07-18 18:05:19 +000054- ...
Rafael Espindola34970692013-12-12 16:07:11 +000055
Sean Silvafe251442012-12-23 01:19:35 +000056Improvements to Clang's diagnostics
57^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
58
Sean Silvafe251442012-12-23 01:19:35 +000059- ...
60
Sean Silvafe251442012-12-23 01:19:35 +000061New Compiler Flags
62------------------
63
Sylvestre Ledruf6b48972016-11-12 10:37:17 +000064The option -Og has been added to optimize the debugging experience.
65For now, this option is exactly the same as -O1. However, in the future,
66some other optimizations might be enabled or disabled.
Renato Golin1588cda2013-12-11 09:35:10 +000067
Joerg Sonnenbergerc3dccd02017-01-12 21:11:55 +000068The option -MJ has been added to simplify adding JSON compilation
69database output into existing build systems.
Sylvestre Ledru0e767b12014-07-14 18:34:37 +000070
Sylvestre Ledruf6b48972016-11-12 10:37:17 +000071The option ....
72
Tyler Nowickidb2668a2014-06-18 00:51:32 +000073New Pragmas in Clang
74-----------------------
75
Rafael Espindolaaf742502014-08-22 21:59:11 +000076Clang now supports the ...
Mark Heffernanbd26f5e2014-07-21 18:08:34 +000077
Paul Robinsonf9ede1c2016-07-18 17:19:12 +000078
79Attribute Changes in Clang
80--------------------------
81
Hans Wennborg60d06bf2016-07-18 18:05:19 +000082- ...
Paul Robinsonf9ede1c2016-07-18 17:19:12 +000083
Hans Wennborg02dc0002014-08-05 00:21:23 +000084Windows Support
85---------------
86
Rafael Espindolaaf742502014-08-22 21:59:11 +000087Clang's support for building native Windows programs ...
Hans Wennborg02dc0002014-08-05 00:21:23 +000088
89
Renato Golinf2fcddb2013-12-13 09:27:34 +000090C Language Changes in Clang
91---------------------------
92
Hans Wennborg60d06bf2016-07-18 18:05:19 +000093- ...
Pirama Arumuga Nainarc85c8532016-06-21 16:09:30 +000094
Renato Golinf2fcddb2013-12-13 09:27:34 +000095...
96
Sean Silvafe251442012-12-23 01:19:35 +000097C11 Feature Support
98^^^^^^^^^^^^^^^^^^^
99
100...
101
102C++ Language Changes in Clang
103-----------------------------
104
Richard Smith8eb53c82016-05-05 18:40:37 +0000105...
106
107C++1z Feature Support
Sean Silvafe251442012-12-23 01:19:35 +0000108^^^^^^^^^^^^^^^^^^^^^
109
110...
111
112Objective-C Language Changes in Clang
113-------------------------------------
114
115...
116
Erik Schnetter489700d2013-11-11 06:36:33 +0000117OpenCL C Language Changes in Clang
118----------------------------------
119
Bill Wendling0a794a4b2013-11-20 10:13:37 +0000120...
Erik Schnetter489700d2013-11-11 06:36:33 +0000121
Alexey Bataev44b67502016-05-31 11:17:08 +0000122OpenMP Support in Clang
123----------------------------------
124
Hans Wennborg60d06bf2016-07-18 18:05:19 +0000125...
Alexey Bataev44b67502016-05-31 11:17:08 +0000126
Sean Silvafe251442012-12-23 01:19:35 +0000127Internal API Changes
128--------------------
129
Sylvestre Ledru503d95d2016-11-12 10:38:18 +0000130These are major API changes that have happened since the 3.9 release of
Sean Silvafe251442012-12-23 01:19:35 +0000131Clang. If upgrading an external codebase that uses Clang as a library,
132this section should help get you past the largest hurdles of upgrading.
133
Vedant Kumar5fb00e42016-07-27 23:01:55 +0000134- ...
Richard Smitha0334a92015-05-14 00:22:12 +0000135
Aaron Ballmancdc43af2015-09-17 13:47:22 +0000136AST Matchers
137------------
Aaron Ballmancdc43af2015-09-17 13:47:22 +0000138
139...
140
Ted Kremenek3a2291b2013-04-24 07:33:52 +0000141libclang
142--------
143
Bill Wendling61f44cc2013-06-04 06:17:46 +0000144...
Ted Kremenek3a2291b2013-04-24 07:33:52 +0000145
Sylvestre Ledruea49d3a2016-08-06 20:23:54 +0000146With the option --show-description, scan-build's list of defects will also
147show the description of the defects.
148
149
Anna Zaksb6219a92013-04-25 23:14:38 +0000150Static Analyzer
Ted Kremenek004e8232013-04-26 00:01:34 +0000151---------------
Anna Zaksb6219a92013-04-25 23:14:38 +0000152
Bill Wendling0a794a4b2013-11-20 10:13:37 +0000153...
Ted Kremenek004e8232013-04-26 00:01:34 +0000154
155Core Analysis Improvements
156==========================
157
Bill Wendling61f44cc2013-06-04 06:17:46 +0000158- ...
Ted Kremenek004e8232013-04-26 00:01:34 +0000159
160New Issues Found
161================
162
Bill Wendling61f44cc2013-06-04 06:17:46 +0000163- ...
Anna Zaksb6219a92013-04-25 23:14:38 +0000164
Sean Silvafe251442012-12-23 01:19:35 +0000165Python Binding Changes
166----------------------
167
168The following methods have been added:
169
170- ...
171
172Significant Known Problems
173==========================
174
175Additional Information
176======================
177
178A wide variety of additional information is available on the `Clang web
179page <http://clang.llvm.org/>`_. The web page contains versions of the
180API documentation which are up-to-date with the Subversion version of
181the source code. You can access versions of these documents specific to
182this release by going into the "``clang/docs/``" directory in the Clang
183tree.
184
185If you have any questions or comments about Clang, please feel free to
186contact us via the `mailing
Tanya Lattner4a08e932015-08-05 03:55:23 +0000187list <http://lists.llvm.org/mailman/listinfo/cfe-dev>`_.