blob: bb645e14fdd5d1a1334a19002fca3c4310e4a9b4 [file] [log] [blame]
Hans Wennborg60d06bf2016-07-18 18:05:19 +00001=======================================
Hans Wennborg7b852ea2018-01-03 15:49:39 +00002Clang 7.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 Wennborg7b852ea2018-01-03 15:49:39 +000013 These are in-progress notes for the upcoming Clang 7 release.
Hans Wennborg189f1f32017-02-09 23:26:34 +000014 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 Wennborg7b852ea2018-01-03 15:49:39 +000021frontend, part of the LLVM Compiler Infrastructure, release 7.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
Hans Wennborgd878ca82017-08-30 18:35:44 +000029For more information about Clang or LLVM, including information about the
30latest release, please see the `Clang Web Site <http://clang.llvm.org>`_ or the
31`LLVM Web Site <http://llvm.org>`_.
Sean Silvafe251442012-12-23 01:19:35 +000032
33Note that if you are reading this file from a Subversion checkout or the
34main Clang web page, this document applies to the *next* release, not
35the current one. To see the release notes for a specific release, please
36see the `releases page <http://llvm.org/releases/>`_.
37
Hans Wennborg7b852ea2018-01-03 15:49:39 +000038What's New in Clang 7.0.0?
Hans Wennborg60d06bf2016-07-18 18:05:19 +000039==========================
Sean Silvafe251442012-12-23 01:19:35 +000040
41Some of the major new features and improvements to Clang are listed
42here. Generic improvements to Clang as a whole or to its underlying
43infrastructure are described first, followed by language-specific
44sections with improvements to Clang's support for those languages.
45
46Major New Features
47------------------
48
Hans Wennborg60d06bf2016-07-18 18:05:19 +000049- ...
Rafael Espindola34970692013-12-12 16:07:11 +000050
Sean Silvafe251442012-12-23 01:19:35 +000051Improvements to Clang's diagnostics
52^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
53
Hans Wennborg7b852ea2018-01-03 15:49:39 +000054- ...
Roman Lebedev809df342017-10-26 13:18:14 +000055
Erich Keaneb0c78092017-07-26 18:04:45 +000056Non-comprehensive list of changes in this release
57-------------------------------------------------
58
Hans Wennborg7b852ea2018-01-03 15:49:39 +000059- ...
Alex Lorenzd8ec4312017-12-14 19:22:02 +000060
Sean Silvafe251442012-12-23 01:19:35 +000061New Compiler Flags
62------------------
63
Hans Wennborg7b852ea2018-01-03 15:49:39 +000064- ...
Aaron Ballman2b3bc4c2017-10-21 16:45:08 +000065
Joerg Sonnenbergerc9199682017-07-01 21:36:21 +000066Deprecated Compiler Flags
67-------------------------
68
69The following options are deprecated and ignored. They will be removed in
70future versions of Clang.
71
Hans Wennborgfbb21e02017-07-19 14:14:07 +000072- ...
Joerg Sonnenbergerc9199682017-07-01 21:36:21 +000073
Yuka Takahashiba900ab2018-03-07 11:34:02 +000074Modified Compiler Flags
75-----------------------
76
77- Before Clang 7.0, we prepended the "#" character to the --autocomplete argument to
78enable cc1 flags. For example, when the -cc1 or -Xclang flag is in the clang invocation,
79the shell executed clang --autocomplete=#-<flag to be completed>. Clang 7.0 now
80requires the whole invocation including all flags to be passed to the --autocomplete
81like this: clang --autocomplete=-cc1,-xc++,-fsyn.
82
Tyler Nowickidb2668a2014-06-18 00:51:32 +000083New Pragmas in Clang
84-----------------------
85
Rafael Espindolaaf742502014-08-22 21:59:11 +000086Clang now supports the ...
Mark Heffernanbd26f5e2014-07-21 18:08:34 +000087
Paul Robinsonf9ede1c2016-07-18 17:19:12 +000088
89Attribute Changes in Clang
90--------------------------
91
Erich Keaneace10a22018-01-08 23:36:29 +000092- Clang now supports function multiversioning with attribute 'target' on ELF
93 based x86/x86-64 environments by using indirect functions. This implementation
94 has a few minor limitations over the GCC implementation for the sake of AST
95 sanity, however it is otherwise compatible with existing code using this
96 feature for GCC. Consult the documentation for the target attribute for more
97 information.
Hans Wennborgfbb21e02017-07-19 14:14:07 +000098- ...
Paul Robinsonf9ede1c2016-07-18 17:19:12 +000099
Hans Wennborg02dc0002014-08-05 00:21:23 +0000100Windows Support
101---------------
102
Rafael Espindolaaf742502014-08-22 21:59:11 +0000103Clang's support for building native Windows programs ...
Hans Wennborg02dc0002014-08-05 00:21:23 +0000104
105
Renato Golinf2fcddb2013-12-13 09:27:34 +0000106C Language Changes in Clang
107---------------------------
108
Hans Wennborg60d06bf2016-07-18 18:05:19 +0000109- ...
Pirama Arumuga Nainarc85c8532016-06-21 16:09:30 +0000110
Renato Golinf2fcddb2013-12-13 09:27:34 +0000111...
112
Sean Silvafe251442012-12-23 01:19:35 +0000113C11 Feature Support
114^^^^^^^^^^^^^^^^^^^
115
116...
117
118C++ Language Changes in Clang
119-----------------------------
120
Hans Wennborg7b852ea2018-01-03 15:49:39 +0000121- ...
Richard Smith8eb53c82016-05-05 18:40:37 +0000122
123C++1z Feature Support
Sean Silvafe251442012-12-23 01:19:35 +0000124^^^^^^^^^^^^^^^^^^^^^
125
126...
127
128Objective-C Language Changes in Clang
129-------------------------------------
130
131...
132
Erik Schnetter489700d2013-11-11 06:36:33 +0000133OpenCL C Language Changes in Clang
134----------------------------------
135
Bill Wendling0a794a4b2013-11-20 10:13:37 +0000136...
Erik Schnetter489700d2013-11-11 06:36:33 +0000137
Alexey Bataev44b67502016-05-31 11:17:08 +0000138OpenMP Support in Clang
139----------------------------------
140
Hans Wennborg7b852ea2018-01-03 15:49:39 +0000141- ...
Alexey Bataev44b67502016-05-31 11:17:08 +0000142
Sean Silvafe251442012-12-23 01:19:35 +0000143Internal API Changes
144--------------------
145
Hans Wennborg7b852ea2018-01-03 15:49:39 +0000146These are major API changes that have happened since the 6.0.0 release of
Sean Silvafe251442012-12-23 01:19:35 +0000147Clang. If upgrading an external codebase that uses Clang as a library,
148this section should help get you past the largest hurdles of upgrading.
149
Vedant Kumar5fb00e42016-07-27 23:01:55 +0000150- ...
Richard Smitha0334a92015-05-14 00:22:12 +0000151
Aaron Ballmancdc43af2015-09-17 13:47:22 +0000152AST Matchers
153------------
Aaron Ballmancdc43af2015-09-17 13:47:22 +0000154
Hans Wennborg7b852ea2018-01-03 15:49:39 +0000155- ...
Sylvestre Ledru72e3fa72017-03-14 09:43:55 +0000156
157clang-format
158------------
159
Hans Wennborg7b852ea2018-01-03 15:49:39 +0000160- ...
Sylvestre Ledruc9410392017-12-05 09:23:47 +0000161
Ted Kremenek3a2291b2013-04-24 07:33:52 +0000162libclang
163--------
164
Bill Wendling61f44cc2013-06-04 06:17:46 +0000165...
Ted Kremenek3a2291b2013-04-24 07:33:52 +0000166
Sylvestre Ledruea49d3a2016-08-06 20:23:54 +0000167
Anna Zaksb6219a92013-04-25 23:14:38 +0000168Static Analyzer
Ted Kremenek004e8232013-04-26 00:01:34 +0000169---------------
Anna Zaksb6219a92013-04-25 23:14:38 +0000170
Hans Wennborg7b852ea2018-01-03 15:49:39 +0000171- ...
Roman Lebedev88b56ca2017-11-30 09:18:35 +0000172
Bill Wendling0a794a4b2013-11-20 10:13:37 +0000173...
Ted Kremenek004e8232013-04-26 00:01:34 +0000174
Vedant Kumar840c2c72017-06-13 02:52:31 +0000175Undefined Behavior Sanitizer (UBSan)
176------------------------------------
177
Hans Wennborg7b852ea2018-01-03 15:49:39 +0000178* ...
Vedant Kumar840c2c72017-06-13 02:52:31 +0000179
Ted Kremenek004e8232013-04-26 00:01:34 +0000180Core Analysis Improvements
181==========================
182
Bill Wendling61f44cc2013-06-04 06:17:46 +0000183- ...
Ted Kremenek004e8232013-04-26 00:01:34 +0000184
185New Issues Found
186================
187
Bill Wendling61f44cc2013-06-04 06:17:46 +0000188- ...
Anna Zaksb6219a92013-04-25 23:14:38 +0000189
Sean Silvafe251442012-12-23 01:19:35 +0000190Python Binding Changes
191----------------------
192
193The following methods have been added:
194
195- ...
196
197Significant Known Problems
198==========================
199
200Additional Information
201======================
202
203A wide variety of additional information is available on the `Clang web
204page <http://clang.llvm.org/>`_. The web page contains versions of the
205API documentation which are up-to-date with the Subversion version of
206the source code. You can access versions of these documents specific to
207this release by going into the "``clang/docs/``" directory in the Clang
208tree.
209
210If you have any questions or comments about Clang, please feel free to
211contact us via the `mailing
Tanya Lattner4a08e932015-08-05 03:55:23 +0000212list <http://lists.llvm.org/mailman/listinfo/cfe-dev>`_.