1======================================= 2Clang 5.0.0 (In-Progress) Release Notes 3======================================= 4 5.. contents:: 6 :local: 7 :depth: 2 8 9Written by the `LLVM Team <http://llvm.org/>`_ 10 11.. warning:: 12 13 These are in-progress notes for the upcoming Clang 5 release. 14 Release notes for previous releases can be found on 15 `the Download Page <http://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 5.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 <http://llvm.org/docs/ReleaseNotes.html>`_. All LLVM 26releases may be downloaded from the `LLVM releases web 27site <http://llvm.org/releases/>`_. 28 29For more information about Clang or LLVM, including information about 30the latest release, please check out the main please see the `Clang Web 31Site <http://clang.llvm.org>`_ or the `LLVM Web 32Site <http://llvm.org>`_. 33 34Note that if you are reading this file from a Subversion checkout or the 35main Clang web page, this document applies to the *next* release, not 36the current one. To see the release notes for a specific release, please 37see the `releases page <http://llvm.org/releases/>`_. 38 39What's New in Clang 5.0.0? 40========================== 41 42Some of the major new features and improvements to Clang are listed 43here. Generic improvements to Clang as a whole or to its underlying 44infrastructure are described first, followed by language-specific 45sections with improvements to Clang's support for those languages. 46 47Major New Features 48------------------ 49 50- ... 51 52Improvements to Clang's diagnostics 53^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 54 55- -Wunused-lambda-capture warns when a variable explicitly captured 56 by a lambda is not used in the body of the lambda. 57 58New Compiler Flags 59------------------ 60 61The option .... 62 63New Pragmas in Clang 64----------------------- 65 66Clang now supports the ... 67 68 69Attribute Changes in Clang 70-------------------------- 71 72- ... 73 74Windows Support 75--------------- 76 77Clang's support for building native Windows programs ... 78 79 80C Language Changes in Clang 81--------------------------- 82 83- ... 84 85... 86 87C11 Feature Support 88^^^^^^^^^^^^^^^^^^^ 89 90... 91 92C++ Language Changes in Clang 93----------------------------- 94 95... 96 97C++1z Feature Support 98^^^^^^^^^^^^^^^^^^^^^ 99 100... 101 102Objective-C Language Changes in Clang 103------------------------------------- 104 105... 106 107OpenCL C Language Changes in Clang 108---------------------------------- 109 110... 111 112OpenMP Support in Clang 113---------------------------------- 114 115... 116 117Internal API Changes 118-------------------- 119 120These are major API changes that have happened since the 4.0.0 release of 121Clang. If upgrading an external codebase that uses Clang as a library, 122this section should help get you past the largest hurdles of upgrading. 123 124- ... 125 126AST Matchers 127------------ 128 129... 130 131 132clang-format 133------------ 134 135* Option **BreakBeforeInheritanceComma** added to break before ``:`` and ``,`` in case of 136 multiple inheritance in a class declaration. Enabled by default in the Mozilla coding style. 137 138 +---------------------+----------------------------------------+ 139 | true | false | 140 +=====================+========================================+ 141 | .. code-block:: c++ | .. code-block:: c++ | 142 | | | 143 | class MyClass | class MyClass : public X, public Y { | 144 | : public X | }; | 145 | , public Y { | | 146 | }; | | 147 +---------------------+----------------------------------------+ 148 149* Align block comment decorations. 150 151 +----------------------+---------------------+ 152 | Before | After | 153 +======================+=====================+ 154 | .. code-block:: c++ | .. code-block:: c++ | 155 | | | 156 | /* line 1 | /* line 1 | 157 | * line 2 | * line 2 | 158 | */ | */ | 159 +----------------------+---------------------+ 160 161* The :doc:`ClangFormatStyleOptions` documentation provides detailed examples for most options. 162 163* Namespace end comments are now added or updated automatically. 164 165 +---------------------+---------------------+ 166 | Before | After | 167 +=====================+=====================+ 168 | .. code-block:: c++ | .. code-block:: c++ | 169 | | | 170 | namespace A { | namespace A { | 171 | int i; | int i; | 172 | int j; | int j; | 173 | } | } | 174 +---------------------+---------------------+ 175 176* Comment reflow support added. Overly long comment lines will now be reflown with the rest of 177 the paragraph instead of just broken. Option **ReflowComments** added and enabled by default. 178 179libclang 180-------- 181 182... 183 184 185Static Analyzer 186--------------- 187 188... 189 190Core Analysis Improvements 191========================== 192 193- ... 194 195New Issues Found 196================ 197 198- ... 199 200Python 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 214page <http://clang.llvm.org/>`_. The web page contains versions of the 215API 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 222list <http://lists.llvm.org/mailman/listinfo/cfe-dev>`_. 223