blob: c6ddbfd8eaf260a1230e284239643b10338fdae2 [file] [log] [blame]
Hans Wennborg60d06bf2016-07-18 18:05:19 +00001=======================================
Hans Wennborg3d0d25d2018-08-01 14:01:27 +00002Clang 8.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 Wennborg3d0d25d2018-08-01 14:01:27 +000013 These are in-progress notes for the upcoming Clang 8 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 Wennborg3d0d25d2018-08-01 14:01:27 +000021frontend, part of the LLVM Compiler Infrastructure, release 8.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 Wennborg3d0d25d2018-08-01 14:01:27 +000038What's New in Clang 8.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
Richard Smith8654ae52018-10-10 23:13:35 +000049- Clang supports use of a profile remapping file, which permits
50 profile data captured for one version of a program to be applied
51 when building another version where symbols have changed (for
52 example, due to renaming a class or namespace).
53 See the :doc:`UsersManual` for details.
Rafael Espindola34970692013-12-12 16:07:11 +000054
Sean Silvafe251442012-12-23 01:19:35 +000055Improvements to Clang's diagnostics
56^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
57
Roman Lebedev61061d62018-04-07 10:39:21 +000058
Erich Keaneb0c78092017-07-26 18:04:45 +000059Non-comprehensive list of changes in this release
60-------------------------------------------------
61
Hans Wennborg7b852ea2018-01-03 15:49:39 +000062- ...
Alex Lorenzd8ec4312017-12-14 19:22:02 +000063
Sean Silvafe251442012-12-23 01:19:35 +000064New Compiler Flags
65------------------
66
Hans Wennborg7b852ea2018-01-03 15:49:39 +000067- ...
Aaron Ballman2b3bc4c2017-10-21 16:45:08 +000068
Joerg Sonnenbergerc9199682017-07-01 21:36:21 +000069Deprecated Compiler Flags
70-------------------------
71
72The following options are deprecated and ignored. They will be removed in
73future versions of Clang.
74
Hans Wennborgfbb21e02017-07-19 14:14:07 +000075- ...
Joerg Sonnenbergerc9199682017-07-01 21:36:21 +000076
Yuka Takahashiba900ab2018-03-07 11:34:02 +000077Modified Compiler Flags
78-----------------------
79
Richard Smith6822bd72018-10-26 19:26:45 +000080- As of clang 8, `alignof` and `_Alignof` return the ABI alignment of a type,
81 as opposed to the preferred alignment. `__alignof` still returns the
82 preferred alignment. `-fclang-abi-compat=7` (and previous) will make
83 `alignof` and `_Alignof` return preferred alignment again.
84
Yuka Takahashiba900ab2018-03-07 11:34:02 +000085
Tyler Nowickidb2668a2014-06-18 00:51:32 +000086New Pragmas in Clang
Eugene Zelenkoad5684a2018-05-15 21:45:01 +000087--------------------
Tyler Nowickidb2668a2014-06-18 00:51:32 +000088
Rafael Espindolaaf742502014-08-22 21:59:11 +000089Clang now supports the ...
Mark Heffernanbd26f5e2014-07-21 18:08:34 +000090
Paul Robinsonf9ede1c2016-07-18 17:19:12 +000091
92Attribute Changes in Clang
93--------------------------
94
Hans Wennborgfbb21e02017-07-19 14:14:07 +000095- ...
Paul Robinsonf9ede1c2016-07-18 17:19:12 +000096
Hans Wennborg02dc0002014-08-05 00:21:23 +000097Windows Support
98---------------
99
Mike Rice58df1af2018-09-11 17:10:44 +0000100- clang-cl now supports the use of the precompiled header options /Yc and /Yu
101 without the filename argument. When these options are used without the
102 filename, a `#pragma hdrstop` inside the source marks the end of the
103 precompiled code.
104
Nico Weber1dbff9a2018-07-18 11:55:03 +0000105- ...
Hans Wennborg02dc0002014-08-05 00:21:23 +0000106
107
Renato Golinf2fcddb2013-12-13 09:27:34 +0000108C Language Changes in Clang
109---------------------------
110
Hans Wennborg60d06bf2016-07-18 18:05:19 +0000111- ...
Pirama Arumuga Nainarc85c8532016-06-21 16:09:30 +0000112
Renato Golinf2fcddb2013-12-13 09:27:34 +0000113...
114
Sean Silvafe251442012-12-23 01:19:35 +0000115C11 Feature Support
116^^^^^^^^^^^^^^^^^^^
117
118...
119
120C++ Language Changes in Clang
121-----------------------------
122
Hans Wennborg7b852ea2018-01-03 15:49:39 +0000123- ...
Richard Smith8eb53c82016-05-05 18:40:37 +0000124
125C++1z Feature Support
Sean Silvafe251442012-12-23 01:19:35 +0000126^^^^^^^^^^^^^^^^^^^^^
127
128...
129
130Objective-C Language Changes in Clang
131-------------------------------------
132
133...
134
Erik Schnetter489700d2013-11-11 06:36:33 +0000135OpenCL C Language Changes in Clang
136----------------------------------
137
Bill Wendling0a794a4b2013-11-20 10:13:37 +0000138...
Erik Schnetter489700d2013-11-11 06:36:33 +0000139
Richard Smith6822bd72018-10-26 19:26:45 +0000140ABI Changes in Clang
141--------------------
142
143- `_Alignof` and `alignof` now return the ABI alignment of a type, as opposed
144 to the preferred alignment.
145 - This is more in keeping with the language of the standards, as well as
146 being compatible with gcc
147 - `__alignof` and `__alignof__` still return the preferred alignment of
148 a type
149 - This shouldn't break any ABI except for things that explicitly ask for
150 `alignas(alignof(T))`.
151 - If you have interfaces that break with this change, you may wish to switch
152 to `alignas(__alignof(T))`, instead of using the `-fclang-abi-compat`
153 switch.
154
Alexey Bataev44b67502016-05-31 11:17:08 +0000155OpenMP Support in Clang
156----------------------------------
157
Alexey Bataev44b67502016-05-31 11:17:08 +0000158
Jonas Hahnfeld8da9c2a2018-04-20 13:04:54 +0000159CUDA Support in Clang
160---------------------
161
Jonas Hahnfeld8da9c2a2018-04-20 13:04:54 +0000162
Sean Silvafe251442012-12-23 01:19:35 +0000163Internal API Changes
164--------------------
165
Hans Wennborg3d0d25d2018-08-01 14:01:27 +0000166These are major API changes that have happened since the 7.0.0 release of
Sean Silvafe251442012-12-23 01:19:35 +0000167Clang. If upgrading an external codebase that uses Clang as a library,
168this section should help get you past the largest hurdles of upgrading.
169
Vedant Kumar5fb00e42016-07-27 23:01:55 +0000170- ...
Richard Smitha0334a92015-05-14 00:22:12 +0000171
Aaron Ballmancdc43af2015-09-17 13:47:22 +0000172AST Matchers
173------------
Aaron Ballmancdc43af2015-09-17 13:47:22 +0000174
Hans Wennborg7b852ea2018-01-03 15:49:39 +0000175- ...
Sylvestre Ledru72e3fa72017-03-14 09:43:55 +0000176
177clang-format
178------------
179
Krasimir Georgievf2ca41d2018-05-08 09:25:12 +0000180
Hans Wennborg7b852ea2018-01-03 15:49:39 +0000181- ...
Sylvestre Ledruc9410392017-12-05 09:23:47 +0000182
Ted Kremenek3a2291b2013-04-24 07:33:52 +0000183libclang
184--------
185
Bill Wendling61f44cc2013-06-04 06:17:46 +0000186...
Ted Kremenek3a2291b2013-04-24 07:33:52 +0000187
Sylvestre Ledruea49d3a2016-08-06 20:23:54 +0000188
Anna Zaksb6219a92013-04-25 23:14:38 +0000189Static Analyzer
Ted Kremenek004e8232013-04-26 00:01:34 +0000190---------------
Anna Zaksb6219a92013-04-25 23:14:38 +0000191
Hans Wennborg7b852ea2018-01-03 15:49:39 +0000192- ...
Roman Lebedev88b56ca2017-11-30 09:18:35 +0000193
Bill Wendling0a794a4b2013-11-20 10:13:37 +0000194...
Ted Kremenek004e8232013-04-26 00:01:34 +0000195
Roman Lebedevb69ba222018-07-30 18:58:30 +0000196.. _release-notes-ubsan:
197
Vedant Kumar840c2c72017-06-13 02:52:31 +0000198Undefined Behavior Sanitizer (UBSan)
199------------------------------------
200
Vedant Kumar840c2c72017-06-13 02:52:31 +0000201
Ted Kremenek004e8232013-04-26 00:01:34 +0000202Core Analysis Improvements
203==========================
204
Bill Wendling61f44cc2013-06-04 06:17:46 +0000205- ...
Ted Kremenek004e8232013-04-26 00:01:34 +0000206
207New Issues Found
208================
209
Bill Wendling61f44cc2013-06-04 06:17:46 +0000210- ...
Anna Zaksb6219a92013-04-25 23:14:38 +0000211
Sean Silvafe251442012-12-23 01:19:35 +0000212Python Binding Changes
213----------------------
214
215The following methods have been added:
216
217- ...
218
219Significant Known Problems
220==========================
221
222Additional Information
223======================
224
225A wide variety of additional information is available on the `Clang web
Hans Wennborg0aa0d912018-09-10 08:51:25 +0000226page <https://clang.llvm.org/>`_. The web page contains versions of the
Sean Silvafe251442012-12-23 01:19:35 +0000227API documentation which are up-to-date with the Subversion version of
228the source code. You can access versions of these documents specific to
229this release by going into the "``clang/docs/``" directory in the Clang
230tree.
231
232If you have any questions or comments about Clang, please feel free to
233contact us via the `mailing
Hans Wennborg0aa0d912018-09-10 08:51:25 +0000234list <https://lists.llvm.org/mailman/listinfo/cfe-dev>`_.