Home | History | Annotate | Download | only in docs
      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>&lt;atomic&gt;</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