1 ========================================
2 Clang 13.0.0 (In-Progress) Release Notes
3 ========================================
9 Written by the `LLVM Team <https://llvm.org/>`_
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>`_.
20 This document contains the release notes for the Clang C/C++/Objective-C
21 frontend, part of the LLVM Compiler Infrastructure, release 13.0.0. Here we
22 describe the status of Clang in some detail, including major
23 improvements from the previous release and new feature work. For the
24 general LLVM release notes, see `the LLVM
25 documentation <https://llvm.org/docs/ReleaseNotes.html>`_. All LLVM
26 releases may be downloaded from the `LLVM releases web
27 site <https://llvm.org/releases/>`_.
29 For more information about Clang or LLVM, including information about the
30 latest release, please see the `Clang Web Site <https://clang.llvm.org>`_ or the
31 `LLVM Web Site <https://llvm.org>`_.
33 Note that if you are reading this file from a Git checkout or the
34 main Clang web page, this document applies to the *next* release, not
35 the current one. To see the release notes for a specific release, please
36 see the `releases page <https://llvm.org/releases/>`_.
38 What's New in Clang 13.0.0?
39 ===========================
41 Some of the major new features and improvements to Clang are listed
42 here. Generic improvements to Clang as a whole or to its underlying
43 infrastructure are described first, followed by language-specific
44 sections with improvements to Clang's support for those languages.
51 Improvements to Clang's diagnostics
52 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
56 Non-comprehensive list of changes in this release
57 -------------------------------------------------
66 Deprecated Compiler Flags
67 -------------------------
71 Modified Compiler Flags
72 -----------------------
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.
83 Removed Compiler Flags
84 -------------------------
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.
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
98 Attribute Changes in Clang
99 --------------------------
106 C Language Changes in Clang
107 ---------------------------
111 C++ Language Changes in Clang
112 -----------------------------
116 C++1z Feature Support
117 ^^^^^^^^^^^^^^^^^^^^^
120 Objective-C Language Changes in Clang
121 -------------------------------------
123 OpenCL C Language Changes in Clang
124 ----------------------------------
131 OpenMP Support in Clang
132 -----------------------
136 CUDA Support in Clang
137 ---------------------
149 These are major API changes that have happened since the 12.0.0 release of
150 Clang. If upgrading an external codebase that uses Clang as a library,
151 this section should help get you past the largest hurdles of upgrading.
158 These are major changes to the build system that have happened since the 12.0.0
159 release of Clang. Users of the build system should adjust accordingly.
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.
175 - Option ``SpacesInLineCommentPrefix`` has been added to control the
176 number of spaces in a line comments prefix.
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.
186 // Never (previously false)
193 // CaseSensitive (previously true)
207 - ``BasedOnStyle: InheritParentConfig`` allows to use the ``.clang-format`` of
208 the parent directories to overwrite only parts of it.
210 - Option ``IndentAccessModifiers`` has been added to be able to give access
211 modifiers their own indentation level inside records.
213 - Option ``ShortNamespaceLines`` has been added to give better control
214 over ``FixNamespaceComments`` when determining a namespace length.
216 - Support for Whitesmiths has been improved, with fixes for ``namespace`` blocks
217 and ``case`` blocks and labels.
229 .. _release-notes-ubsan:
231 Undefined Behavior Sanitizer (UBSan)
232 ------------------------------------
234 Core Analysis Improvements
235 ==========================
244 Python Binding Changes
245 ----------------------
247 The following methods have been added:
251 Significant Known Problems
252 ==========================
254 Additional Information
255 ======================
257 A wide variety of additional information is available on the `Clang web
258 page <https://clang.llvm.org/>`_. The web page contains versions of the
259 API documentation which are up-to-date with the Git version of
260 the source code. You can access versions of these documents specific to
261 this release by going into the "``clang/docs/``" directory in the Clang
264 If you have any questions or comments about Clang, please feel free to
265 contact us via the `mailing
266 list <https://lists.llvm.org/mailman/listinfo/cfe-dev>`_.