blob: 87245c8fb5f3747d6b9e2d0ada975ffb23082d80 [file] [log] [blame]
Hans Wennborg8f5b44a2019-07-18 11:51:05 +00001========================================
2Clang 10.0.0 (In-Progress) Release Notes
3========================================
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 Wennborg8f5b44a2019-07-18 11:51:05 +000013 These are in-progress notes for the upcoming Clang 10 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 Wennborg8f5b44a2019-07-18 11:51:05 +000021frontend, part of the LLVM Compiler Infrastructure, release 10.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 Wennborg8f5b44a2019-07-18 11:51:05 +000038What's New in Clang 10.0.0?
39===========================
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
Eric Christopher030b17d2019-05-14 19:40:42 +000078- ...
Yuka Takahashiba900ab2018-03-07 11:34:02 +000079
Tyler Nowickidb2668a2014-06-18 00:51:32 +000080New Pragmas in Clang
Eugene Zelenkoad5684a2018-05-15 21:45:01 +000081--------------------
Tyler Nowickidb2668a2014-06-18 00:51:32 +000082
Hans Wennborg1fe469a2019-01-16 10:57:02 +000083- ...
Paul Robinsonf9ede1c2016-07-18 17:19:12 +000084
85Attribute Changes in Clang
86--------------------------
87
Hans Wennborgfbb21e02017-07-19 14:14:07 +000088- ...
Paul Robinsonf9ede1c2016-07-18 17:19:12 +000089
Hans Wennborg02dc0002014-08-05 00:21:23 +000090Windows Support
91---------------
92
Hans Wennborg8f5b44a2019-07-18 11:51:05 +000093- ...
Hans Wennborg02dc0002014-08-05 00:21:23 +000094
Renato Golinf2fcddb2013-12-13 09:27:34 +000095C Language Changes in Clang
96---------------------------
97
Kristina Brooksc0eb8a92019-06-05 03:47:02 +000098- ...
Renato Golinf2fcddb2013-12-13 09:27:34 +000099
Sean Silvafe251442012-12-23 01:19:35 +0000100C11 Feature Support
101^^^^^^^^^^^^^^^^^^^
102
103...
104
105C++ Language Changes in Clang
106-----------------------------
107
Hans Wennborg7b852ea2018-01-03 15:49:39 +0000108- ...
Richard Smith8eb53c82016-05-05 18:40:37 +0000109
110C++1z Feature Support
Sean Silvafe251442012-12-23 01:19:35 +0000111^^^^^^^^^^^^^^^^^^^^^
112
113...
114
115Objective-C Language Changes in Clang
116-------------------------------------
117
Hans Wennborg8f5b44a2019-07-18 11:51:05 +0000118- ...
Sean Silvafe251442012-12-23 01:19:35 +0000119
Erik Schnetter489700d2013-11-11 06:36:33 +0000120OpenCL C Language Changes in Clang
121----------------------------------
122
Bill Wendling0a794a4b2013-11-20 10:13:37 +0000123...
Erik Schnetter489700d2013-11-11 06:36:33 +0000124
Richard Smith6822bd72018-10-26 19:26:45 +0000125ABI Changes in Clang
126--------------------
127
Hans Wennborg1fe469a2019-01-16 10:57:02 +0000128- ...
Richard Smith6822bd72018-10-26 19:26:45 +0000129
Alexey Bataev44b67502016-05-31 11:17:08 +0000130OpenMP Support in Clang
Shoaib Meenai5be71fa2019-03-04 21:19:53 +0000131-----------------------
Alexey Bataev44b67502016-05-31 11:17:08 +0000132
Hans Wennborg8f5b44a2019-07-18 11:51:05 +0000133- ...
Alexey Bataev44b67502016-05-31 11:17:08 +0000134
Jonas Hahnfeld8da9c2a2018-04-20 13:04:54 +0000135CUDA Support in Clang
136---------------------
137
Hans Wennborg8f5b44a2019-07-18 11:51:05 +0000138- ...
Jonas Hahnfeld8da9c2a2018-04-20 13:04:54 +0000139
Sean Silvafe251442012-12-23 01:19:35 +0000140Internal API Changes
141--------------------
142
Hans Wennborg8f5b44a2019-07-18 11:51:05 +0000143These are major API changes that have happened since the 9.0.0 release of
Sean Silvafe251442012-12-23 01:19:35 +0000144Clang. If upgrading an external codebase that uses Clang as a library,
145this section should help get you past the largest hurdles of upgrading.
146
Shoaib Meenai5be71fa2019-03-04 21:19:53 +0000147Build System Changes
148--------------------
149
Hans Wennborg8f5b44a2019-07-18 11:51:05 +0000150These are major changes to the build system that have happened since the 9.0.0
Shoaib Meenai5be71fa2019-03-04 21:19:53 +0000151release of Clang. Users of the build system should adjust accordingly.
152
153- In 8.0.0 and below, the install-clang-headers target would install clang's
154 resource directory headers. This installation is now performed by the
155 install-clang-resource-headers target. Users of the old install-clang-headers
Shoaib Meenai20e7c0c2019-03-11 18:53:57 +0000156 target should switch to the new install-clang-resource-headers target. The
157 install-clang-headers target now installs clang's API headers (corresponding
158 to its libraries), which is consistent with the install-llvm-headers target.
Shoaib Meenai5be71fa2019-03-04 21:19:53 +0000159
Vedant Kumar5fb00e42016-07-27 23:01:55 +0000160- ...
Richard Smitha0334a92015-05-14 00:22:12 +0000161
Aaron Ballmancdc43af2015-09-17 13:47:22 +0000162AST Matchers
163------------
Aaron Ballmancdc43af2015-09-17 13:47:22 +0000164
Paul Hoadccc6f832019-03-22 22:47:34 +0000165- ...
Sylvestre Ledru72e3fa72017-03-14 09:43:55 +0000166
167clang-format
168------------
169
Hans Wennborg8f5b44a2019-07-18 11:51:05 +0000170- ...
Sylvestre Ledruc9410392017-12-05 09:23:47 +0000171
Ted Kremenek3a2291b2013-04-24 07:33:52 +0000172libclang
173--------
174
Hans Wennborg8f5b44a2019-07-18 11:51:05 +0000175- ...
Ted Kremenek3a2291b2013-04-24 07:33:52 +0000176
Sylvestre Ledruea49d3a2016-08-06 20:23:54 +0000177
Anna Zaksb6219a92013-04-25 23:14:38 +0000178Static Analyzer
Ted Kremenek004e8232013-04-26 00:01:34 +0000179---------------
Anna Zaksb6219a92013-04-25 23:14:38 +0000180
Hans Wennborg8f5b44a2019-07-18 11:51:05 +0000181- ...
Ted Kremenek004e8232013-04-26 00:01:34 +0000182
Roman Lebedevb69ba222018-07-30 18:58:30 +0000183.. _release-notes-ubsan:
184
Vedant Kumar840c2c72017-06-13 02:52:31 +0000185Undefined Behavior Sanitizer (UBSan)
186------------------------------------
187
Hans Wennborg1fe469a2019-01-16 10:57:02 +0000188- ...
Roman Lebedevbd1c0872019-01-15 09:44:25 +0000189
Ted Kremenek004e8232013-04-26 00:01:34 +0000190Core 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
Hans Wennborg0aa0d912018-09-10 08:51:25 +0000214page <https://clang.llvm.org/>`_. The web page contains versions of the
Sean Silvafe251442012-12-23 01:19:35 +0000215API 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
Hans Wennborg0aa0d912018-09-10 08:51:25 +0000222list <https://lists.llvm.org/mailman/listinfo/cfe-dev>`_.