1======================================= 2Clang 4.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 4.0.0 release. You may 14 prefer the `Clang 3.9 Release Notes 15 <http://llvm.org/releases/3.9.0/tools/clang/docs/ReleaseNotes.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 4.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 4.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- The ``diagnose_if`` attribute has been added to clang. This attribute allows 51 clang to emit a warning or error if a function call meets one or more 52 user-specified conditions. 53 54- ... 55 56Improvements to Clang's diagnostics 57^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 58 59- ... 60 61New Compiler Flags 62------------------ 63 64The option -Og has been added to optimize the debugging experience. 65For now, this option is exactly the same as -O1. However, in the future, 66some other optimizations might be enabled or disabled. 67 68 69The option .... 70 71New Pragmas in Clang 72----------------------- 73 74Clang now supports the ... 75 76 77Attribute Changes in Clang 78-------------------------- 79 80- ... 81 82Windows Support 83--------------- 84 85Clang's support for building native Windows programs ... 86 87 88C Language Changes in Clang 89--------------------------- 90 91- ... 92 93... 94 95C11 Feature Support 96^^^^^^^^^^^^^^^^^^^ 97 98... 99 100C++ Language Changes in Clang 101----------------------------- 102 103... 104 105C++1z Feature Support 106^^^^^^^^^^^^^^^^^^^^^ 107 108... 109 110Objective-C Language Changes in Clang 111------------------------------------- 112 113... 114 115OpenCL C Language Changes in Clang 116---------------------------------- 117 118... 119 120OpenMP Support in Clang 121---------------------------------- 122 123... 124 125Internal API Changes 126-------------------- 127 128These are major API changes that have happened since the 3.9 release of 129Clang. If upgrading an external codebase that uses Clang as a library, 130this section should help get you past the largest hurdles of upgrading. 131 132- ... 133 134AST Matchers 135------------ 136 137... 138 139libclang 140-------- 141 142... 143 144With the option --show-description, scan-build's list of defects will also 145show the description of the defects. 146 147 148Static Analyzer 149--------------- 150 151... 152 153Core Analysis Improvements 154========================== 155 156- ... 157 158New Issues Found 159================ 160 161- ... 162 163Python Binding Changes 164---------------------- 165 166The following methods have been added: 167 168- ... 169 170Significant Known Problems 171========================== 172 173Additional Information 174====================== 175 176A wide variety of additional information is available on the `Clang web 177page <http://clang.llvm.org/>`_. The web page contains versions of the 178API documentation which are up-to-date with the Subversion version of 179the source code. You can access versions of these documents specific to 180this release by going into the "``clang/docs/``" directory in the Clang 181tree. 182 183If you have any questions or comments about Clang, please feel free to 184contact us via the `mailing 185list <http://lists.llvm.org/mailman/listinfo/cfe-dev>`_. 186