blob: cb8d73932bf69f784686a5249c86f936919b682f [file] [log] [blame]
Hans Wennborg8f5b44a2019-07-18 11:51:05 +00001========================================
Hans Wennborg58524752020-01-15 10:02:56 +01002Clang 11.0.0 (In-Progress) Release Notes
Hans Wennborg8f5b44a2019-07-18 11:51:05 +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 Wennborg58524752020-01-15 10:02:56 +010013 These are in-progress notes for the upcoming Clang 11 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 Wennborg58524752020-01-15 10:02:56 +010021frontend, part of the LLVM Compiler Infrastructure, release 11.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
Hans Wennborg58524752020-01-15 10:02:56 +010033Note that if you are reading this file from a Git checkout or the
Sean Silvafe251442012-12-23 01:19:35 +000034main 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 Wennborg58524752020-01-15 10:02:56 +010038What's New in Clang 11.0.0?
Hans Wennborg8f5b44a2019-07-18 11:51:05 +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 Wennborg58524752020-01-15 10:02:56 +010054- ...
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
Fangrui Songe4fce652019-12-12 10:49:46 -080059
Sean Silvafe251442012-12-23 01:19:35 +000060New Compiler Flags
61------------------
62
Craig Topperb2b6a542019-11-04 10:20:00 -080063
Joerg Sonnenbergerc9199682017-07-01 21:36:21 +000064Deprecated Compiler Flags
65-------------------------
66
67The following options are deprecated and ignored. They will be removed in
68future versions of Clang.
69
Hans Wennborgfbb21e02017-07-19 14:14:07 +000070- ...
Joerg Sonnenbergerc9199682017-07-01 21:36:21 +000071
Yuka Takahashiba900ab2018-03-07 11:34:02 +000072Modified Compiler Flags
73-----------------------
74
Yuka Takahashiba900ab2018-03-07 11:34:02 +000075
Tyler Nowickidb2668a2014-06-18 00:51:32 +000076New Pragmas in Clang
Eugene Zelenkoad5684a2018-05-15 21:45:01 +000077--------------------
Tyler Nowickidb2668a2014-06-18 00:51:32 +000078
Hans Wennborg1fe469a2019-01-16 10:57:02 +000079- ...
Paul Robinsonf9ede1c2016-07-18 17:19:12 +000080
81Attribute Changes in Clang
82--------------------------
83
Hans Wennborgfbb21e02017-07-19 14:14:07 +000084- ...
Paul Robinsonf9ede1c2016-07-18 17:19:12 +000085
Hans Wennborg02dc0002014-08-05 00:21:23 +000086Windows Support
87---------------
88
Renato Golinf2fcddb2013-12-13 09:27:34 +000089C Language Changes in Clang
90---------------------------
91
Kristina Brooksc0eb8a92019-06-05 03:47:02 +000092- ...
Renato Golinf2fcddb2013-12-13 09:27:34 +000093
Sean Silvafe251442012-12-23 01:19:35 +000094C11 Feature Support
95^^^^^^^^^^^^^^^^^^^
96
97...
98
99C++ Language Changes in Clang
100-----------------------------
101
Richard Smith8eb53c82016-05-05 18:40:37 +0000102
103C++1z Feature Support
Sean Silvafe251442012-12-23 01:19:35 +0000104^^^^^^^^^^^^^^^^^^^^^
105
106...
107
108Objective-C Language Changes in Clang
109-------------------------------------
110
Sean Silvafe251442012-12-23 01:19:35 +0000111
Erik Schnetter489700d2013-11-11 06:36:33 +0000112OpenCL C Language Changes in Clang
113----------------------------------
114
Bill Wendling0a794a4b2013-11-20 10:13:37 +0000115...
Erik Schnetter489700d2013-11-11 06:36:33 +0000116
Richard Smith6822bd72018-10-26 19:26:45 +0000117ABI Changes in Clang
118--------------------
119
Sam Elliotte3d5ff52019-11-15 15:10:02 +0000120
Alexey Bataev44b67502016-05-31 11:17:08 +0000121OpenMP Support in Clang
Shoaib Meenai5be71fa2019-03-04 21:19:53 +0000122-----------------------
Alexey Bataev44b67502016-05-31 11:17:08 +0000123
Hans Wennborg8f5b44a2019-07-18 11:51:05 +0000124- ...
Alexey Bataev44b67502016-05-31 11:17:08 +0000125
Jonas Hahnfeld8da9c2a2018-04-20 13:04:54 +0000126CUDA Support in Clang
127---------------------
128
Hans Wennborg8f5b44a2019-07-18 11:51:05 +0000129- ...
Jonas Hahnfeld8da9c2a2018-04-20 13:04:54 +0000130
Sean Silvafe251442012-12-23 01:19:35 +0000131Internal API Changes
132--------------------
133
Hans Wennborg58524752020-01-15 10:02:56 +0100134These are major API changes that have happened since the 10.0.0 release of
Sean Silvafe251442012-12-23 01:19:35 +0000135Clang. If upgrading an external codebase that uses Clang as a library,
136this section should help get you past the largest hurdles of upgrading.
137
Dmitri Gribenkob22804b2019-08-30 09:29:34 +0000138
Shoaib Meenai5be71fa2019-03-04 21:19:53 +0000139Build System Changes
140--------------------
141
Hans Wennborg58524752020-01-15 10:02:56 +0100142These are major changes to the build system that have happened since the 10.0.0
Shoaib Meenai5be71fa2019-03-04 21:19:53 +0000143release of Clang. Users of the build system should adjust accordingly.
144
Chris Bienemana80a3a2b2019-08-14 16:49:52 +0000145- ...
Richard Smitha0334a92015-05-14 00:22:12 +0000146
Aaron Ballmancdc43af2015-09-17 13:47:22 +0000147AST Matchers
148------------
Aaron Ballmancdc43af2015-09-17 13:47:22 +0000149
Paul Hoadccc6f832019-03-22 22:47:34 +0000150- ...
Sylvestre Ledru72e3fa72017-03-14 09:43:55 +0000151
152clang-format
153------------
154
mydeveloperday8b5f6c12019-11-19 08:34:23 +0000155
mydeveloperday14c04472020-01-19 15:52:26 +0000156- Option ``IndentCaseBlocks`` has been added to support treating the block
157 following a switch case label as a scope block which gets indented itself.
158 It helps avoid having the closing bracket align with the switch statement's
159 closing bracket (when ``IndentCaseLabels`` is ``false``).
160
mydeveloperday70c98672020-02-01 17:37:25 +0000161- Option ``ObjCBreakBeforeNestedBlockParam`` has been added to optionally apply
162 linebreaks for function arguments declarations before nested blocks.
163
mydeveloperday14c04472020-01-19 15:52:26 +0000164 .. code-block:: c++
mydeveloperday70c98672020-02-01 17:37:25 +0000165
mydeveloperday14c04472020-01-19 15:52:26 +0000166 switch (fool) { vs. switch (fool) {
167 case 1: case 1: {
168 { bar();
169 bar(); } break;
170 } default: {
171 break; plop();
172 default: }
173 { }
174 plop();
175 }
176 }
177
Martin Probstdc04c54f2020-01-31 10:23:02 +0100178- Option ``InsertTrailingCommas`` can be set to ``TCS_Wrapped`` to insert
179 trailing commas in container literals (arrays and objects) that wrap across
180 multiple lines. It is currently only available for JavaScript and disabled by
181 default (``TCS_None``).
182
Ted Kremenek3a2291b2013-04-24 07:33:52 +0000183libclang
184--------
185
Hans Wennborg8f5b44a2019-07-18 11:51:05 +0000186- ...
Ted Kremenek3a2291b2013-04-24 07:33:52 +0000187
Anna Zaksb6219a92013-04-25 23:14:38 +0000188Static Analyzer
Ted Kremenek004e8232013-04-26 00:01:34 +0000189---------------
Anna Zaksb6219a92013-04-25 23:14:38 +0000190
Hans Wennborg8f5b44a2019-07-18 11:51:05 +0000191- ...
Ted Kremenek004e8232013-04-26 00:01:34 +0000192
Roman Lebedevb69ba222018-07-30 18:58:30 +0000193.. _release-notes-ubsan:
194
Vedant Kumar840c2c72017-06-13 02:52:31 +0000195Undefined Behavior Sanitizer (UBSan)
196------------------------------------
197
Roman Lebedev536b0ee2019-10-10 09:25:02 +0000198
Ted Kremenek004e8232013-04-26 00:01:34 +0000199Core Analysis Improvements
200==========================
201
Bill Wendling61f44cc2013-06-04 06:17:46 +0000202- ...
Ted Kremenek004e8232013-04-26 00:01:34 +0000203
204New Issues Found
205================
206
Bill Wendling61f44cc2013-06-04 06:17:46 +0000207- ...
Anna Zaksb6219a92013-04-25 23:14:38 +0000208
Sean Silvafe251442012-12-23 01:19:35 +0000209Python Binding Changes
210----------------------
211
212The following methods have been added:
213
214- ...
215
216Significant Known Problems
217==========================
218
219Additional Information
220======================
221
222A wide variety of additional information is available on the `Clang web
Hans Wennborg0aa0d912018-09-10 08:51:25 +0000223page <https://clang.llvm.org/>`_. The web page contains versions of the
Sean Silvafe251442012-12-23 01:19:35 +0000224API documentation which are up-to-date with the Subversion version of
225the source code. You can access versions of these documents specific to
226this release by going into the "``clang/docs/``" directory in the Clang
227tree.
228
229If you have any questions or comments about Clang, please feel free to
230contact us via the `mailing
Hans Wennborg0aa0d912018-09-10 08:51:25 +0000231list <https://lists.llvm.org/mailman/listinfo/cfe-dev>`_.