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- `clang -dumpversion` now returns the version of Clang itself. 79 80- ... 81 82New Pragmas in Clang 83-------------------- 84 85- ... 86 87Attribute Changes in Clang 88-------------------------- 89 90- ... 91 92Windows Support 93--------------- 94 95- ... 96 97 98C Language Changes in Clang 99--------------------------- 100 101- ... 102 103... 104 105C11 Feature Support 106^^^^^^^^^^^^^^^^^^^ 107 108... 109 110C++ Language Changes in Clang 111----------------------------- 112 113- ... 114 115C++1z Feature Support 116^^^^^^^^^^^^^^^^^^^^^ 117 118... 119 120Objective-C Language Changes in Clang 121------------------------------------- 122 123... 124 125OpenCL C Language Changes in Clang 126---------------------------------- 127 128... 129 130ABI Changes in Clang 131-------------------- 132 133- ... 134 135OpenMP Support in Clang 136----------------------- 137 138- Added emission of the debug information for NVPTX target devices. 139 140CUDA Support in Clang 141--------------------- 142 143- Added emission of the debug information for the device code. 144 145Internal API Changes 146-------------------- 147 148These are major API changes that have happened since the 8.0.0 release of 149Clang. If upgrading an external codebase that uses Clang as a library, 150this section should help get you past the largest hurdles of upgrading. 151 152Build System Changes 153-------------------- 154 155These are major changes to the build system that have happened since the 8.0.0 156release of Clang. Users of the build system should adjust accordingly. 157 158- In 8.0.0 and below, the install-clang-headers target would install clang's 159 resource directory headers. This installation is now performed by the 160 install-clang-resource-headers target. Users of the old install-clang-headers 161 target should switch to the new install-clang-resource-headers target. The 162 install-clang-headers target now installs clang's API headers (corresponding 163 to its libraries), which is consistent with the install-llvm-headers target. 164 165- ... 166 167AST Matchers 168------------ 169 170- ... 171 172clang-format 173------------ 174 175- Add language support for clang-formatting C# files 176- Add Microsoft coding style to encapsulate default C# formatting style 177- Added new option `PPDIS_BeforeHash` (in configuration: `BeforeHash`) to 178 `IndentPPDirectives` which indents preprocessor directives before the hash. 179 180libclang 181-------- 182 183- When `CINDEXTEST_INCLUDE_ATTRIBUTED_TYPES` is not provided when making a 184 CXType, the equivalent type of the AttributedType is returned instead of the 185 modified type if the user does not want attribute sugar. The equivalent type 186 represents the minimally-desugared type which the AttributedType is 187 canonically equivalent to. 188 189 190Static Analyzer 191--------------- 192 193- ... 194 195... 196 197.. _release-notes-ubsan: 198 199Undefined Behavior Sanitizer (UBSan) 200------------------------------------ 201 202- ... 203 204Core Analysis Improvements 205========================== 206 207- ... 208 209New Issues Found 210================ 211 212- ... 213 214Python Binding Changes 215---------------------- 216 217The following methods have been added: 218 219- ... 220 221Significant Known Problems 222========================== 223 224Additional Information 225====================== 226 227A wide variety of additional information is available on the `Clang web 228page <https://clang.llvm.org/>`_. The web page contains versions of the 229API documentation which are up-to-date with the Subversion version of 230the source code. You can access versions of these documents specific to 231this release by going into the "``clang/docs/``" directory in the Clang 232tree. 233 234If you have any questions or comments about Clang, please feel free to 235contact us via the `mailing 236list <https://lists.llvm.org/mailman/listinfo/cfe-dev>`_. 237