1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" 2 "http://www.w3.org/TR/html4/strict.dtd"> 3 <html> 4 <head> 5 <title>Clang 3.1 Release Notes</title> 6 <link type="text/css" rel="stylesheet" href="../menu.css"> 7 <link type="text/css" rel="stylesheet" href="../content.css"> 8 <style type="text/css"> 9 td { 10 vertical-align: top; 11 } 12 </style> 13 </head> 14 <body> 15 16 <!--#include virtual="../menu.html.incl"--> 17 18 <div id="content"> 19 20 <h1>Clang 3.1 Release Notes</h1> 21 22 <img style="float:right" src="http://llvm.org/img/DragonSmall.png" 23 width="136" height="136" alt="LLVM Dragon Logo"> 24 25 <ul> 26 <li><a href="#intro">Introduction</a></li> 27 <li><a href="#whatsnew">What's New in Clang 3.1?</a> 28 <ul> 29 <li><a href="#majorfeatures">Major New Features</a></li> 30 <li><a href="#cchanges">C Language Changes</a></li> 31 <li><a href="#cxxchanges">C++ Language Changes</a></li> 32 <li><a href="#objcchanges">Objective-C Language Changes</a></li> 33 <li><a href="#apichanges">Internal API Changes</a></li> 34 </ul> 35 </li> 36 <li><a href="#knownproblems">Known Problems</a></li> 37 <li><a href="#additionalinfo">Additional Information</a></li> 38 </ul> 39 40 <div class="doc_author"> 41 <p>Written by the <a href="http://llvm.org/">LLVM Team</a></p> 42 </div> 43 44 <h1 style="color:red">These are in-progress notes for the upcoming Clang 3.1 45 release.<br> 46 You may prefer the 47 <a href="http://llvm.org/releases/3.0/docs/ClangReleaseNotes.html">Clang 3.0 48 Release Notes</a>.</h1> 49 50 <!-- ======================================================================= --> 51 <h2 id="intro">Introduction</h2> 52 <!-- ======================================================================= --> 53 54 <p>This document contains the release notes for the Clang C/C++/Objective-C 55 frontend, part of the LLVM Compiler Infrastructure, release 3.1. Here we 56 describe the status of Clang in some detail, including major improvements from 57 the previous release and new feature work. For the general LLVM release notes, 58 see <a href="http://llvm.org/docs/ReleaseNotes.html">the LLVM 59 documentation</a>. All LLVM releases may be downloaded from the 60 <a href="http://llvm.org/releases/">LLVM releases web site</a>.</p> 61 62 <p>For more information about Clang or LLVM, including information about the 63 latest release, please check out the main please see the 64 <a href="http://clang.llvm.org">Clang Web Site</a> or the 65 <a href="http://llvm.org">LLVM Web Site</a>. 66 67 <p>Note that if you are reading this file from a Subversion checkout or the main 68 Clang web page, this document applies to the <i>next</i> release, not the 69 current one. To see the release notes for a specific release, please see the 70 <a href="http://llvm.org/releases/">releases page</a>.</p> 71 72 <!-- ======================================================================= --> 73 <h2 id="whatsnew">What's New in Clang 3.1?</h2> 74 <!-- ======================================================================= --> 75 76 <p>Some of the major new features and improvements to Clang are listed here. 77 Generic improvements to Clang as a whole or two its underlying infrastructure 78 are described first, followed by language-specific sections with improvements to 79 Clang's support for those languages.</p> 80 81 <!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = --> 82 <h3 id="majorfeatures">Major New Features</h3> 83 <!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = --> 84 85 <h4 id="majorfeature1">Feature 1</h4> 86 ... 87 88 <h4 id="diagnostics">New and better diagnostics</h4> 89 90 <p>New: <code>-Wdangling-else</code>, <code>-Wstrncat-size</code>, ...</p> 91 92 <p>Improved: <code>-Wformat</code>, <code>-Wempty-body</code>, 93 <code>-Wliteral-conversion</code>, ...</p> 94 95 <h4 id="tooling">Tooling</h4> 96 <!-- FIXME: add a link to the tooling documentation once that's written. --> 97 <p>Added an API to enable clang-based standalone tools, including initial build 98 system integration.</p> 99 100 <!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = --> 101 <h3 id="cchanges">C Language Changes in Clang</h3> 102 <!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = --> 103 104 <h4 id="c11changes">C11 Feature Support</h4> 105 106 <p>Clang 3.1 adds support for anonymous structs and anonymous unions, added in 107 the latest ISO C standard. Use <code>-std=c11</code> or <code>-std=gnu11</code> 108 to enable support for the new language standard. The new C11 features are 109 backwards-compatible and are available as an extension in all language 110 modes.</p> 111 112 <p>All warning and language selection flags which previously accepted 113 <code>c1x</code> have been updated to accept <code>c11</code>. The old 114 <code>c1x</code> forms have been removed. 115 116 <!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = --> 117 <h3 id="cxxchanges">C++ Language Changes in Clang</h3> 118 <!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = --> 119 120 <h4 id="cxx11changes">C++11 Feature Support</h4> 121 <p>Clang 3.1 adds support for 122 <a href="http://clang.llvm.org/cxx_status.html#cxx11">more of the language 123 features</a> added in the latest ISO C++ standard, 124 <a href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=50372">C++ 2011</a>. 125 Use <code>-std=c++11</code> or <code>-std=gnu++11</code> to enable support for 126 these features. In addition to the features supported by Clang 3.0, the 127 following are now considered to be of production quality: 128 <ul> 129 <li>Generalized constant expressions</li> 130 <li>Lambda expressions</li> 131 <li>Generalized initializers</li> 132 <li>Unrestricted unions</li> 133 <li>User-defined literals</li> 134 <li>Forward-declared enumerations</li> 135 <li>Atomics (both libc++'s and libstdc++4.7's <tt><atomic></tt> are 136 supported)</li> 137 </ul> 138 139 <!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = --> 140 <h3 id="objcchanges">Objective-C Language Changes in Clang</h3> 141 <!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = --> 142 Clang 3.1 introduces several new Objective-C language features and improvements. 143 144 <h4 id="objcwformat">Format string checking for NSString literals</h4> 145 146 <code>-Wformat</code> now checks <code>@"nsstring literals"</code>. 147 148 <!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = --> 149 <h3 id="apichanges">Internal API Changes</h3> 150 <!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = --> 151 152 These are major API changes that have happened since the 3.0 release of Clang. 153 If upgrading an external codebase that uses Clang as a library, this section 154 should help get you past the largest hurdles of upgrading. 155 156 <h4 id="api1">API change 1</h4> 157 ... 158 159 <!-- ======================================================================= --> 160 <h2 id="knownproblems">Significant Known Problems</h2> 161 <!-- ======================================================================= --> 162 163 <!-- ======================================================================= --> 164 <h2 id="additionalinfo">Additional Information</h2> 165 <!-- ======================================================================= --> 166 167 <p>A wide variety of additional information is available on the 168 <a href="http://clang.llvm.org/">Clang web page</a>. The web page contains 169 versions of the API documentation which are up-to-date with the Subversion 170 version of the source code. You can access versions of these documents specific 171 to this release by going into the "<tt>clang/doc/</tt>" directory in the Clang 172 tree.</p> 173 174 <p>If you have any questions or comments about Clang, please feel free to 175 contact us via the <a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev"> 176 mailing list</a>.</p> 177 178 179 <!-- ======================================================================= --> 180 <!-- Likely 3.1 release notes --> 181 <!-- ======================================================================= --> 182 <!-- 183 This is just a section to hold things that have already gotten started and 184 should likely pick up proper release notes in 3.1. 185 186 - C1X and C++11 atomics infrastructure and support 187 - CUDA support? 188 189 --> 190 191 </div> 192 </body> 193 </html> 194