1 ===================================== 2 Clang 3.8 (In-Progress) Release Notes 3 ===================================== 4 5 .. contents:: 6 :local: 7 :depth: 2 8 9 Written 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 17 Introduction 18 ============ 19 20 This document contains the release notes for the Clang C/C++/Objective-C 21 frontend, part of the LLVM Compiler Infrastructure, release 3.8. Here we 22 describe the status of Clang in some detail, including major 23 improvements from the previous release and new feature work. For the 24 general LLVM release notes, see `the LLVM 25 documentation <http://llvm.org/docs/ReleaseNotes.html>`_. All LLVM 26 releases may be downloaded from the `LLVM releases web 27 site <http://llvm.org/releases/>`_. 28 29 For more information about Clang or LLVM, including information about 30 the latest release, please check out the main please see the `Clang Web 31 Site <http://clang.llvm.org>`_ or the `LLVM Web 32 Site <http://llvm.org>`_. 33 34 Note that if you are reading this file from a Subversion checkout or the 35 main Clang web page, this document applies to the *next* release, not 36 the current one. To see the release notes for a specific release, please 37 see the `releases page <http://llvm.org/releases/>`_. 38 39 What's New in Clang 3.8? 40 ======================== 41 42 Some of the major new features and improvements to Clang are listed 43 here. Generic improvements to Clang as a whole or to its underlying 44 infrastructure are described first, followed by language-specific 45 sections with improvements to Clang's support for those languages. 46 47 Major New Features 48 ------------------ 49 50 - Feature1... 51 52 Improvements to Clang's diagnostics 53 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 54 55 Clang's diagnostics are constantly being improved to catch more issues, 56 explain them more clearly, and provide more accurate source information 57 about them. The improvements since the 3.7 release include: 58 59 - ... 60 61 New Compiler Flags 62 ------------------ 63 64 The option .... 65 66 67 New Pragmas in Clang 68 ----------------------- 69 70 Clang now supports the ... 71 72 Windows Support 73 --------------- 74 75 Clang's support for building native Windows programs ... 76 77 78 C Language Changes in Clang 79 --------------------------- 80 81 ... 82 83 C11 Feature Support 84 ^^^^^^^^^^^^^^^^^^^ 85 86 ... 87 88 C++ Language Changes in Clang 89 ----------------------------- 90 91 - ... 92 93 C++11 Feature Support 94 ^^^^^^^^^^^^^^^^^^^^^ 95 96 ... 97 98 Objective-C Language Changes in Clang 99 ------------------------------------- 100 101 ... 102 103 OpenCL C Language Changes in Clang 104 ---------------------------------- 105 106 ... 107 108 Internal API Changes 109 -------------------- 110 111 These are major API changes that have happened since the 3.7 release of 112 Clang. If upgrading an external codebase that uses Clang as a library, 113 this section should help get you past the largest hurdles of upgrading. 114 115 - ... 116 117 AST Matchers 118 ------------ 119 The AST matcher functions were renamed to reflect the exact AST node names, 120 which is a breaking change to AST matching code. The following matchers were 121 affected: 122 123 ======================= ============================ 124 Previous Matcher Name New Matcher Name 125 ======================= ============================ 126 recordDecl recordDecl and cxxRecordDecl 127 ctorInitializer cxxCtorInitializer 128 constructorDecl cxxConstructorDecl 129 destructorDecl cxxDestructorDecl 130 methodDecl cxxMethodDecl 131 conversionDecl cxxConversionDecl 132 memberCallExpr cxxMemberCallExpr 133 constructExpr cxxConstructExpr 134 unresolvedConstructExpr cxxUnresolvedConstructExpr 135 thisExpr cxxThisExpr 136 bindTemporaryExpr cxxBindTemporaryExpr 137 newExpr cxxNewExpr 138 deleteExpr cxxDeleteExpr 139 defaultArgExpr cxxDefaultArgExpr 140 operatorCallExpr cxxOperatorCallExpr 141 forRangeStmt cxxForRangeStmt 142 catchStmt cxxCatchStmt 143 tryStmt cxxTryStmt 144 throwExpr cxxThrowExpr 145 boolLiteral cxxBoolLiteral 146 nullPtrLiteralExpr cxxNullPtrLiteralExpr 147 reinterpretCastExpr cxxReinterpretCastExpr 148 staticCastExpr cxxStaticCastExpr 149 dynamicCastExpr cxxDynamicCastExpr 150 constCastExpr cxxConstCastExpr 151 functionalCastExpr cxxFunctionalCastExpr 152 temporaryObjectExpr cxxTemporaryObjectExpr 153 CUDAKernalCallExpr cudaKernelCallExpr 154 ======================= ============================ 155 156 recordDecl() previously matched AST nodes of type CXXRecordDecl, but now 157 matches AST nodes of type RecordDecl. If a CXXRecordDecl is required, use the 158 cxxRecordDecl() matcher instead. 159 160 ... 161 162 libclang 163 -------- 164 165 ... 166 167 Static Analyzer 168 --------------- 169 170 ... 171 172 Core Analysis Improvements 173 ========================== 174 175 - ... 176 177 New Issues Found 178 ================ 179 180 - ... 181 182 Python Binding Changes 183 ---------------------- 184 185 The following methods have been added: 186 187 - ... 188 189 Significant Known Problems 190 ========================== 191 192 Additional Information 193 ====================== 194 195 A wide variety of additional information is available on the `Clang web 196 page <http://clang.llvm.org/>`_. The web page contains versions of the 197 API documentation which are up-to-date with the Subversion version of 198 the source code. You can access versions of these documents specific to 199 this release by going into the "``clang/docs/``" directory in the Clang 200 tree. 201 202 If you have any questions or comments about Clang, please feel free to 203 contact us via the `mailing 204 list <http://lists.llvm.org/mailman/listinfo/cfe-dev>`_. 205