blob: 1f09655027fc46940b4f0565401830a87be0c8fb [file] [log] [blame]
Hans Wennborg60d06bf2016-07-18 18:05:19 +00001=======================================
Hans Wennborg1fe469a2019-01-16 10:57:02 +00002Clang 9.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
Hans Wennborg0aa0d912018-09-10 08:51:25 +00009Written by the `LLVM Team <https://llvm.org/>`_
Sean Silvafe251442012-12-23 01:19:35 +000010
11.. warning::
12
Hans Wennborg1fe469a2019-01-16 10:57:02 +000013 These are in-progress notes for the upcoming Clang 9 release.
Hans Wennborg189f1f32017-02-09 23:26:34 +000014 Release notes for previous releases can be found on
Hans Wennborg0aa0d912018-09-10 08:51:25 +000015 `the Download Page <https://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 Wennborg1fe469a2019-01-16 10:57:02 +000021frontend, part of the LLVM Compiler Infrastructure, release 9.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
Hans Wennborg0aa0d912018-09-10 08:51:25 +000025documentation <https://llvm.org/docs/ReleaseNotes.html>`_. All LLVM
Sean Silvafe251442012-12-23 01:19:35 +000026releases may be downloaded from the `LLVM releases web
Hans Wennborg0aa0d912018-09-10 08:51:25 +000027site <https://llvm.org/releases/>`_.
Sean Silvafe251442012-12-23 01:19:35 +000028
Hans Wennborgd878ca82017-08-30 18:35:44 +000029For more information about Clang or LLVM, including information about the
Hans Wennborg0aa0d912018-09-10 08:51:25 +000030latest release, please see the `Clang Web Site <https://clang.llvm.org>`_ or the
31`LLVM Web Site <https://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
Hans Wennborg0aa0d912018-09-10 08:51:25 +000036see the `releases page <https://llvm.org/releases/>`_.
Sean Silvafe251442012-12-23 01:19:35 +000037
Hans Wennborg1fe469a2019-01-16 10:57:02 +000038What's New in Clang 9.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 Wennborg1fe469a2019-01-16 10:57:02 +000049- ...
Rafael Espindola34970692013-12-12 16:07:11 +000050
Sean Silvafe251442012-12-23 01:19:35 +000051Improvements to Clang's diagnostics
52^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
53
Hans Wennborg1fe469a2019-01-16 10:57:02 +000054- ...
Roman Lebedev61061d62018-04-07 10:39:21 +000055
Erich Keaneb0c78092017-07-26 18:04:45 +000056Non-comprehensive list of changes in this release
57-------------------------------------------------
58
Hans Wennborg1fe469a2019-01-16 10:57:02 +000059- ...
Alex Lorenzd8ec4312017-12-14 19:22:02 +000060
Ilya Biryukov88aef522018-12-05 18:32:05 +000061
Sean Silvafe251442012-12-23 01:19:35 +000062New Compiler Flags
63------------------
64
Hans Wennborg7b852ea2018-01-03 15:49:39 +000065- ...
Aaron Ballman2b3bc4c2017-10-21 16:45:08 +000066
Joerg Sonnenbergerc9199682017-07-01 21:36:21 +000067Deprecated Compiler Flags
68-------------------------
69
70The following options are deprecated and ignored. They will be removed in
71future versions of Clang.
72
Hans Wennborgfbb21e02017-07-19 14:14:07 +000073- ...
Joerg Sonnenbergerc9199682017-07-01 21:36:21 +000074
Yuka Takahashiba900ab2018-03-07 11:34:02 +000075Modified Compiler Flags
76-----------------------
77
Sylvestre Ledru90dbbdb2019-03-26 09:48:23 +000078- `clang -dumpversion` now returns the version of Clang itself.
79
Eric Christopher030b17d2019-05-14 19:40:42 +000080- ...
Yuka Takahashiba900ab2018-03-07 11:34:02 +000081
Tyler Nowickidb2668a2014-06-18 00:51:32 +000082New Pragmas in Clang
Eugene Zelenkoad5684a2018-05-15 21:45:01 +000083--------------------
Tyler Nowickidb2668a2014-06-18 00:51:32 +000084
Hans Wennborg1fe469a2019-01-16 10:57:02 +000085- ...
Paul Robinsonf9ede1c2016-07-18 17:19:12 +000086
87Attribute Changes in Clang
88--------------------------
89
Hans Wennborgfbb21e02017-07-19 14:14:07 +000090- ...
Paul Robinsonf9ede1c2016-07-18 17:19:12 +000091
Hans Wennborg02dc0002014-08-05 00:21:23 +000092Windows Support
93---------------
94
Nico Weber1dbff9a2018-07-18 11:55:03 +000095- ...
Hans Wennborg02dc0002014-08-05 00:21:23 +000096
97
Renato Golinf2fcddb2013-12-13 09:27:34 +000098C Language Changes in Clang
99---------------------------
100
Hans Wennborg60d06bf2016-07-18 18:05:19 +0000101- ...
Pirama Arumuga Nainarc85c8532016-06-21 16:09:30 +0000102
Renato Golinf2fcddb2013-12-13 09:27:34 +0000103...
104
Sean Silvafe251442012-12-23 01:19:35 +0000105C11 Feature Support
106^^^^^^^^^^^^^^^^^^^
107
108...
109
110C++ Language Changes in Clang
111-----------------------------
112
Hans Wennborg7b852ea2018-01-03 15:49:39 +0000113- ...
Richard Smith8eb53c82016-05-05 18:40:37 +0000114
115C++1z Feature Support
Sean Silvafe251442012-12-23 01:19:35 +0000116^^^^^^^^^^^^^^^^^^^^^
117
118...
119
120Objective-C Language Changes in Clang
121-------------------------------------
122
123...
124
Erik Schnetter489700d2013-11-11 06:36:33 +0000125OpenCL C Language Changes in Clang
126----------------------------------
127
Bill Wendling0a794a4b2013-11-20 10:13:37 +0000128...
Erik Schnetter489700d2013-11-11 06:36:33 +0000129
Richard Smith6822bd72018-10-26 19:26:45 +0000130ABI Changes in Clang
131--------------------
132
Hans Wennborg1fe469a2019-01-16 10:57:02 +0000133- ...
Richard Smith6822bd72018-10-26 19:26:45 +0000134
Alexey Bataev44b67502016-05-31 11:17:08 +0000135OpenMP Support in Clang
Shoaib Meenai5be71fa2019-03-04 21:19:53 +0000136-----------------------
Alexey Bataev44b67502016-05-31 11:17:08 +0000137
Alexey Bataevc2dc4d42019-02-05 20:38:36 +0000138- Added emission of the debug information for NVPTX target devices.
Alexey Bataev44b67502016-05-31 11:17:08 +0000139
Jonas Hahnfeld8da9c2a2018-04-20 13:04:54 +0000140CUDA Support in Clang
141---------------------
142
Alexey Bataevc2dc4d42019-02-05 20:38:36 +0000143- Added emission of the debug information for the device code.
Jonas Hahnfeld8da9c2a2018-04-20 13:04:54 +0000144
Sean Silvafe251442012-12-23 01:19:35 +0000145Internal API Changes
146--------------------
147
Hans Wennborg1fe469a2019-01-16 10:57:02 +0000148These are major API changes that have happened since the 8.0.0 release of
Sean Silvafe251442012-12-23 01:19:35 +0000149Clang. If upgrading an external codebase that uses Clang as a library,
150this section should help get you past the largest hurdles of upgrading.
151
Shoaib Meenai5be71fa2019-03-04 21:19:53 +0000152Build System Changes
153--------------------
154
155These are major changes to the build system that have happened since the 8.0.0
156release of Clang. Users of the build system should adjust accordingly.
157
158- In 8.0.0 and below, the install-clang-headers target would install clang's
159 resource directory headers. This installation is now performed by the
160 install-clang-resource-headers target. Users of the old install-clang-headers
Shoaib Meenai20e7c0c2019-03-11 18:53:57 +0000161 target should switch to the new install-clang-resource-headers target. The
162 install-clang-headers target now installs clang's API headers (corresponding
163 to its libraries), which is consistent with the install-llvm-headers target.
Shoaib Meenai5be71fa2019-03-04 21:19:53 +0000164
Vedant Kumar5fb00e42016-07-27 23:01:55 +0000165- ...
Richard Smitha0334a92015-05-14 00:22:12 +0000166
Aaron Ballmancdc43af2015-09-17 13:47:22 +0000167AST Matchers
168------------
Aaron Ballmancdc43af2015-09-17 13:47:22 +0000169
Paul Hoadccc6f832019-03-22 22:47:34 +0000170- ...
Sylvestre Ledru72e3fa72017-03-14 09:43:55 +0000171
172clang-format
173------------
174
Paul Hoadccc6f832019-03-22 22:47:34 +0000175- Add language support for clang-formatting C# files
176- Add Microsoft coding style to encapsulate default C# formatting style
Paul Hoad701a0d72019-03-20 20:49:43 +0000177- Added new option `PPDIS_BeforeHash` (in configuration: `BeforeHash`) to
Paul Hoad7c6ce352019-03-20 21:02:12 +0000178 `IndentPPDirectives` which indents preprocessor directives before the hash.
Sylvestre Ledruc9410392017-12-05 09:23:47 +0000179
Ted Kremenek3a2291b2013-04-24 07:33:52 +0000180libclang
181--------
182
Leonard Chan009f9e82019-01-24 00:11:35 +0000183- When `CINDEXTEST_INCLUDE_ATTRIBUTED_TYPES` is not provided when making a
184 CXType, the equivalent type of the AttributedType is returned instead of the
185 modified type if the user does not want attribute sugar. The equivalent type
186 represents the minimally-desugared type which the AttributedType is
187 canonically equivalent to.
Ted Kremenek3a2291b2013-04-24 07:33:52 +0000188
Sylvestre Ledruea49d3a2016-08-06 20:23:54 +0000189
Anna Zaksb6219a92013-04-25 23:14:38 +0000190Static Analyzer
Ted Kremenek004e8232013-04-26 00:01:34 +0000191---------------
Anna Zaksb6219a92013-04-25 23:14:38 +0000192
Sylvestre Ledru5f163c72019-04-26 21:46:33 +0000193- The UninitializedObject checker is now considered as stable.
194 (moved from the 'alpha.cplusplus' to the 'optin.cplusplus' package)
Roman Lebedev88b56ca2017-11-30 09:18:35 +0000195
Bill Wendling0a794a4b2013-11-20 10:13:37 +0000196...
Ted Kremenek004e8232013-04-26 00:01:34 +0000197
Roman Lebedevb69ba222018-07-30 18:58:30 +0000198.. _release-notes-ubsan:
199
Vedant Kumar840c2c72017-06-13 02:52:31 +0000200Undefined Behavior Sanitizer (UBSan)
201------------------------------------
202
Hans Wennborg1fe469a2019-01-16 10:57:02 +0000203- ...
Roman Lebedevbd1c0872019-01-15 09:44:25 +0000204
Ted Kremenek004e8232013-04-26 00:01:34 +0000205Core Analysis Improvements
206==========================
207
Bill Wendling61f44cc2013-06-04 06:17:46 +0000208- ...
Ted Kremenek004e8232013-04-26 00:01:34 +0000209
210New Issues Found
211================
212
Bill Wendling61f44cc2013-06-04 06:17:46 +0000213- ...
Anna Zaksb6219a92013-04-25 23:14:38 +0000214
Sean Silvafe251442012-12-23 01:19:35 +0000215Python Binding Changes
216----------------------
217
218The following methods have been added:
219
220- ...
221
222Significant Known Problems
223==========================
224
225Additional Information
226======================
227
228A wide variety of additional information is available on the `Clang web
Hans Wennborg0aa0d912018-09-10 08:51:25 +0000229page <https://clang.llvm.org/>`_. The web page contains versions of the
Sean Silvafe251442012-12-23 01:19:35 +0000230API documentation which are up-to-date with the Subversion version of
231the source code. You can access versions of these documents specific to
232this release by going into the "``clang/docs/``" directory in the Clang
233tree.
234
235If you have any questions or comments about Clang, please feel free to
236contact us via the `mailing
Hans Wennborg0aa0d912018-09-10 08:51:25 +0000237list <https://lists.llvm.org/mailman/listinfo/cfe-dev>`_.