1===================================== 2Clang 3.8 (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 3.8 release. You may 14 prefer the `Clang 3.7 Release Notes 15 <http://llvm.org/releases/3.7.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 3.8. 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 3.8? 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- Feature1... 51 52Improvements to Clang's diagnostics 53^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 54 55Clang's diagnostics are constantly being improved to catch more issues, 56explain them more clearly, and provide more accurate source information 57about them. The improvements since the 3.7 release include: 58 59- ... 60 61New Compiler Flags 62------------------ 63 64The option .... 65 66 67New Pragmas in Clang 68----------------------- 69 70Clang now supports the ... 71 72Windows Support 73--------------- 74 75Clang's support for building native Windows programs ... 76 77 78C Language Changes in Clang 79--------------------------- 80 81... 82 83C11 Feature Support 84^^^^^^^^^^^^^^^^^^^ 85 86... 87 88C++ Language Changes in Clang 89----------------------------- 90 91- ... 92 93C++11 Feature Support 94^^^^^^^^^^^^^^^^^^^^^ 95 96... 97 98Objective-C Language Changes in Clang 99------------------------------------- 100 101... 102 103OpenCL C Language Changes in Clang 104---------------------------------- 105 106... 107 108Internal API Changes 109-------------------- 110 111These are major API changes that have happened since the 3.7 release of 112Clang. If upgrading an external codebase that uses Clang as a library, 113this section should help get you past the largest hurdles of upgrading. 114 115- ... 116 117AST Matchers 118------------ 119The AST matcher functions were renamed to reflect the exact AST node names, 120which is a breaking change to AST matching code. The following matchers were 121affected: 122 123======================= ============================ 124Previous Matcher Name New Matcher Name 125======================= ============================ 126recordDecl recordDecl and cxxRecordDecl 127ctorInitializer cxxCtorInitializer 128constructorDecl cxxConstructorDecl 129destructorDecl cxxDestructorDecl 130methodDecl cxxMethodDecl 131conversionDecl cxxConversionDecl 132memberCallExpr cxxMemberCallExpr 133constructExpr cxxConstructExpr 134unresolvedConstructExpr cxxUnresolvedConstructExpr 135thisExpr cxxThisExpr 136bindTemporaryExpr cxxBindTemporaryExpr 137newExpr cxxNewExpr 138deleteExpr cxxDeleteExpr 139defaultArgExpr cxxDefaultArgExpr 140operatorCallExpr cxxOperatorCallExpr 141forRangeStmt cxxForRangeStmt 142catchStmt cxxCatchStmt 143tryStmt cxxTryStmt 144throwExpr cxxThrowExpr 145boolLiteral cxxBoolLiteral 146nullPtrLiteralExpr cxxNullPtrLiteralExpr 147reinterpretCastExpr cxxReinterpretCastExpr 148staticCastExpr cxxStaticCastExpr 149dynamicCastExpr cxxDynamicCastExpr 150constCastExpr cxxConstCastExpr 151functionalCastExpr cxxFunctionalCastExpr 152temporaryObjectExpr cxxTemporaryObjectExpr 153CUDAKernalCallExpr cudaKernelCallExpr 154======================= ============================ 155 156recordDecl() previously matched AST nodes of type CXXRecordDecl, but now 157matches AST nodes of type RecordDecl. If a CXXRecordDecl is required, use the 158cxxRecordDecl() matcher instead. 159 160... 161 162libclang 163-------- 164 165... 166 167Static Analyzer 168--------------- 169 170... 171 172Core Analysis Improvements 173========================== 174 175- ... 176 177New Issues Found 178================ 179 180- ... 181 182Python Binding Changes 183---------------------- 184 185The following methods have been added: 186 187- ... 188 189Significant Known Problems 190========================== 191 192Additional Information 193====================== 194 195A wide variety of additional information is available on the `Clang web 196page <http://clang.llvm.org/>`_. The web page contains versions of the 197API documentation which are up-to-date with the Subversion version of 198the source code. You can access versions of these documents specific to 199this release by going into the "``clang/docs/``" directory in the Clang 200tree. 201 202If you have any questions or comments about Clang, please feel free to 203contact us via the `mailing 204list <http://lists.llvm.org/mailman/listinfo/cfe-dev>`_. 205