1========================================
2Clang 13.0.0 (In-Progress) Release Notes
3========================================
4
5.. contents::
6   :local:
7   :depth: 2
8
9Written by the `LLVM Team <https://llvm.org/>`_
10
11.. warning::
12
13   These are in-progress notes for the upcoming Clang 13 release.
14   Release notes for previous releases can be found on
15   `the Download Page <https://releases.llvm.org/download.html>`_.
16
17Introduction
18============
19
20This document contains the release notes for the Clang C/C++/Objective-C
21frontend, part of the LLVM Compiler Infrastructure, release 13.0.0. Here we
22describe 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 <https://llvm.org/docs/ReleaseNotes.html>`_. All LLVM
26releases may be downloaded from the `LLVM releases web
27site <https://llvm.org/releases/>`_.
28
29For more information about Clang or LLVM, including information about the
30latest release, please see the `Clang Web Site <https://clang.llvm.org>`_ or the
31`LLVM Web Site <https://llvm.org>`_.
32
33Note that if you are reading this file from a Git 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 <https://llvm.org/releases/>`_.
37
38What's New in Clang 13.0.0?
39===========================
40
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
49- ...
50
51Improvements to Clang's diagnostics
52^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
53
54- ...
55
56Non-comprehensive list of changes in this release
57-------------------------------------------------
58
59- ...
60
61New Compiler Flags
62------------------
63
64- ...
65
66Deprecated Compiler Flags
67-------------------------
68
69- ...
70
71Modified Compiler Flags
72-----------------------
73
74- -Wshadow now also checks for shadowed structured bindings
75- ``-B <prefix>`` (when ``<prefix>`` is a directory) was overloaded to additionally
76  detect GCC installations under ``<prefix>`` (``lib{,32,64}/gcc{,-cross}/$triple``).
77  This behavior was incompatible with GCC, caused interop issues with
78  ``--gcc-toolchain``, and was thus dropped. Specify ``--gcc-toolchain=<dir>``
79  instead. ``-B``'s other GCC-compatible semantics are preserved:
80  ``$prefix/$triple-$file`` and ``$prefix$file`` are searched for executables,
81  libraries, includes, and data files used by the compiler.
82
83Removed Compiler Flags
84-------------------------
85
86- The clang-cl ``/fallback`` flag, which made clang-cl invoke Microsoft Visual
87  C++ on files it couldn't compile itself, has been removed.
88
89- ``-Wreturn-std-move-in-c++11``, which checked whether an entity is affected by
90  `CWG1579 <https://wg21.link/CWG1579>`_ to become implicitly movable, has been
91  removed.
92
93New Pragmas in Clang
94--------------------
95
96- ...
97
98Attribute Changes in Clang
99--------------------------
100
101- ...
102
103Windows Support
104---------------
105
106C Language Changes in Clang
107---------------------------
108
109- ...
110
111C++ Language Changes in Clang
112-----------------------------
113
114- ...
115
116C++1z Feature Support
117^^^^^^^^^^^^^^^^^^^^^
118...
119
120Objective-C Language Changes in Clang
121-------------------------------------
122
123OpenCL C Language Changes in Clang
124----------------------------------
125
126...
127
128ABI Changes in Clang
129--------------------
130
131OpenMP Support in Clang
132-----------------------
133
134- ...
135
136CUDA Support in Clang
137---------------------
138
139- ...
140
141X86 Support in Clang
142--------------------
143
144- ...
145
146Internal API Changes
147--------------------
148
149These are major API changes that have happened since the 12.0.0 release of
150Clang. If upgrading an external codebase that uses Clang as a library,
151this section should help get you past the largest hurdles of upgrading.
152
153- ...
154
155Build System Changes
156--------------------
157
158These are major changes to the build system that have happened since the 12.0.0
159release of Clang. Users of the build system should adjust accordingly.
160
161- The option ``LIBCLANG_INCLUDE_CLANG_TOOLS_EXTRA`` no longer exists. There were
162  two releases with that flag forced off, and no uses were added that forced it
163  on. The recommended replacement is clangd.
164
165- ...
166
167AST Matchers
168------------
169
170- ...
171
172clang-format
173------------
174
175- Option ``SpacesInLineCommentPrefix`` has been added to control the
176  number of spaces in a line comments prefix.
177
178- Option ``SortIncludes`` has been updated from a ``bool`` to an
179  ``enum`` with backwards compatibility. In addition to the previous
180  ``true``/``false`` states (now ``CaseSensitive``/``Never``), a third
181  state has been added (``CaseInsensitive``) which causes an alphabetical sort
182  with case used as a tie-breaker.
183
184  .. code-block:: c++
185
186    // Never (previously false)
187    #include "B/A.h"
188    #include "A/B.h"
189    #include "a/b.h"
190    #include "A/b.h"
191    #include "B/a.h"
192
193    // CaseSensitive (previously true)
194    #include "A/B.h"
195    #include "A/b.h"
196    #include "B/A.h"
197    #include "B/a.h"
198    #include "a/b.h"
199
200    // CaseInsensitive
201    #include "A/B.h"
202    #include "A/b.h"
203    #include "a/b.h"
204    #include "B/A.h"
205    #include "B/a.h"
206
207- ``BasedOnStyle: InheritParentConfig`` allows to use the ``.clang-format`` of
208  the parent directories to overwrite only parts of it.
209
210- Option ``IndentAccessModifiers`` has been added to be able to give access
211  modifiers their own indentation level inside records.
212
213- Option ``ShortNamespaceLines`` has been added to give better control
214  over ``FixNamespaceComments`` when determining a namespace length.
215
216- Support for Whitesmiths has been improved, with fixes for ``namespace`` blocks
217  and ``case`` blocks and labels.
218
219libclang
220--------
221
222- ...
223
224Static Analyzer
225---------------
226
227- ...
228
229.. _release-notes-ubsan:
230
231Undefined Behavior Sanitizer (UBSan)
232------------------------------------
233
234Core Analysis Improvements
235==========================
236
237- ...
238
239New Issues Found
240================
241
242- ...
243
244Python Binding Changes
245----------------------
246
247The following methods have been added:
248
249-  ...
250
251Significant Known Problems
252==========================
253
254Additional Information
255======================
256
257A wide variety of additional information is available on the `Clang web
258page <https://clang.llvm.org/>`_. The web page contains versions of the
259API documentation which are up-to-date with the Git version of
260the source code. You can access versions of these documents specific to
261this release by going into the "``clang/docs/``" directory in the Clang
262tree.
263
264If you have any questions or comments about Clang, please feel free to
265contact us via the `mailing
266list <https://lists.llvm.org/mailman/listinfo/cfe-dev>`_.
267