1======================================= 2Clang 9.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 9 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 9.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 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 36see the `releases page <https://llvm.org/releases/>`_. 37 38What's New in Clang 9.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 61 62New Compiler Flags 63------------------ 64 65- ... 66 67Deprecated Compiler Flags 68------------------------- 69 70The following options are deprecated and ignored. They will be removed in 71future versions of Clang. 72 73- ... 74 75Modified Compiler Flags 76----------------------- 77 78- ... 79 80New Pragmas in Clang 81-------------------- 82 83- ... 84 85Attribute Changes in Clang 86-------------------------- 87 88- ... 89 90Windows Support 91--------------- 92 93- ... 94 95 96C Language Changes in Clang 97--------------------------- 98 99- ... 100 101... 102 103C11 Feature Support 104^^^^^^^^^^^^^^^^^^^ 105 106... 107 108C++ Language Changes in Clang 109----------------------------- 110 111- ... 112 113C++1z Feature Support 114^^^^^^^^^^^^^^^^^^^^^ 115 116... 117 118Objective-C Language Changes in Clang 119------------------------------------- 120 121... 122 123OpenCL C Language Changes in Clang 124---------------------------------- 125 126... 127 128ABI Changes in Clang 129-------------------- 130 131- ... 132 133OpenMP Support in Clang 134----------------------- 135 136- Added emission of the debug information for NVPTX target devices. 137 138CUDA Support in Clang 139--------------------- 140 141- Added emission of the debug information for the device code. 142 143Internal API Changes 144-------------------- 145 146These are major API changes that have happened since the 8.0.0 release of 147Clang. If upgrading an external codebase that uses Clang as a library, 148this section should help get you past the largest hurdles of upgrading. 149 150Build System Changes 151-------------------- 152 153These are major changes to the build system that have happened since the 8.0.0 154release of Clang. Users of the build system should adjust accordingly. 155 156- In 8.0.0 and below, the install-clang-headers target would install clang's 157 resource directory headers. This installation is now performed by the 158 install-clang-resource-headers target. Users of the old install-clang-headers 159 target should switch to the new install-clang-resource-headers target. The 160 install-clang-headers target now installs clang's API headers (corresponding 161 to its libraries), which is consistent with the install-llvm-headers target. 162 163- ... 164 165AST Matchers 166------------ 167 168- ... 169 170clang-format 171------------ 172 173- Add language support for clang-formatting C# files 174- Add Microsoft coding style to encapsulate default C# formatting style 175- Added new option `PPDIS_BeforeHash` (in configuration: `BeforeHash`) to 176 `IndentPPDirectives` which indents preprocessor directives before the hash. 177 178libclang 179-------- 180 181- When `CINDEXTEST_INCLUDE_ATTRIBUTED_TYPES` is not provided when making a 182 CXType, the equivalent type of the AttributedType is returned instead of the 183 modified type if the user does not want attribute sugar. The equivalent type 184 represents the minimally-desugared type which the AttributedType is 185 canonically equivalent to. 186 187 188Static Analyzer 189--------------- 190 191- ... 192 193... 194 195.. _release-notes-ubsan: 196 197Undefined Behavior Sanitizer (UBSan) 198------------------------------------ 199 200- ... 201 202Core Analysis Improvements 203========================== 204 205- ... 206 207New Issues Found 208================ 209 210- ... 211 212Python 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 226page <https://clang.llvm.org/>`_. The web page contains versions of the 227API 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 234list <https://lists.llvm.org/mailman/listinfo/cfe-dev>`_. 235