forked from OSchip/llvm-project
204 lines
7.7 KiB
HTML
204 lines
7.7 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
|
|
"http://www.w3.org/TR/html4/strict.dtd">
|
|
<html>
|
|
<head>
|
|
<title>Clang 3.2 Release Notes</title>
|
|
<link type="text/css" rel="stylesheet" href="../menu.css">
|
|
<link type="text/css" rel="stylesheet" href="../content.css">
|
|
<style type="text/css">
|
|
td {
|
|
vertical-align: top;
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
|
|
<!--#include virtual="../menu.html.incl"-->
|
|
|
|
<div id="content">
|
|
|
|
<h1>Clang 3.2 Release Notes</h1>
|
|
|
|
<img style="float:right" src="http://llvm.org/img/DragonSmall.png"
|
|
width="136" height="136" alt="LLVM Dragon Logo">
|
|
|
|
<ul>
|
|
<li><a href="#intro">Introduction</a></li>
|
|
<li><a href="#whatsnew">What's New in Clang 3.2?</a>
|
|
<ul>
|
|
<li><a href="#majorfeatures">Major New Features</a></li>
|
|
<li><a href="#cchanges">C Language Changes</a></li>
|
|
<li><a href="#cxxchanges">C++ Language Changes</a></li>
|
|
<li><a href="#objcchanges">Objective-C Language Changes</a></li>
|
|
<li><a href="#apichanges">Internal API Changes</a></li>
|
|
<li><a href="#pythonchanges">Python Binding Changes</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a href="#knownproblems">Known Problems</a></li>
|
|
<li><a href="#additionalinfo">Additional Information</a></li>
|
|
</ul>
|
|
|
|
<div class="doc_author">
|
|
<p>Written by the <a href="http://llvm.org/">LLVM Team</a></p>
|
|
</div>
|
|
|
|
<h1 style="color:red">These are in-progress notes for the upcoming Clang 3.2
|
|
release.<br>
|
|
You may prefer the
|
|
<a href="http://llvm.org/releases/3.1/docs/ClangReleaseNotes.html">Clang 3.1
|
|
Release Notes</a>.</h1>
|
|
|
|
<!-- ======================================================================= -->
|
|
<h2 id="intro">Introduction</h2>
|
|
<!-- ======================================================================= -->
|
|
|
|
<p>This document contains the release notes for the Clang C/C++/Objective-C
|
|
frontend, part of the LLVM Compiler Infrastructure, release 3.2. Here we
|
|
describe the status of Clang in some detail, including major improvements
|
|
from the previous release and new feature work. For the general LLVM release
|
|
notes, see <a href="http://llvm.org/docs/ReleaseNotes.html">the LLVM
|
|
documentation</a>. All LLVM releases may be downloaded from the
|
|
<a href="http://llvm.org/releases/">LLVM releases web site</a>.</p>
|
|
|
|
<p>For more information about Clang or LLVM, including information about the
|
|
latest release, please check out the main please see the
|
|
<a href="http://clang.llvm.org">Clang Web Site</a> or the
|
|
<a href="http://llvm.org">LLVM Web Site</a>.
|
|
|
|
<p>Note that if you are reading this file from a Subversion checkout or the main
|
|
Clang web page, this document applies to the <i>next</i> release, not the
|
|
current one. To see the release notes for a specific release, please see the
|
|
<a href="http://llvm.org/releases/">releases page</a>.</p>
|
|
|
|
<!-- ======================================================================= -->
|
|
<h2 id="whatsnew">What's New in Clang 3.2?</h2>
|
|
<!-- ======================================================================= -->
|
|
|
|
<p>Some of the major new features and improvements to Clang are listed here.
|
|
Generic improvements to Clang as a whole or to its underlying infrastructure
|
|
are described first, followed by language-specific sections with improvements
|
|
to Clang's support for those languages.</p>
|
|
|
|
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
|
|
<h3 id="majorfeatures">Major New Features</h3>
|
|
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
|
|
|
|
<h4 id="diagnostics">Improvements to Clang's diagnostics</h4>
|
|
|
|
<p>Clang's diagnostics are constantly being improved to catch more issues,
|
|
explain them more clearly, and provide more accurate source information about
|
|
them. The improvements since the 3.1 release include:</p>
|
|
|
|
<ul>
|
|
<li><tt>-Wuninitialized</tt> has been taught to recognise uninitialized uses
|
|
which always occur when an explicitly-written non-constant condition is either
|
|
<tt>true</tt> or <tt>false</tt>. For example:
|
|
|
|
<pre>
|
|
int f(bool b) {
|
|
int n;
|
|
if (b)
|
|
n = 1;
|
|
return n;
|
|
}
|
|
|
|
<b>sometimes-uninit.cpp:3:7: <span class="warning">warning:</span> variable 'n' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized]</b>
|
|
if (b)
|
|
<span class="caret">^</span>
|
|
<b>sometimes-uninit.cpp:5:10: <span class="note">note:</span></b> uninitialized use occurs here
|
|
return n;
|
|
<span class="caret">^</span>
|
|
<b>sometimes-uninit.cpp:3:3: <span class="note">note:</span></b> remove the 'if' if its condition is always true
|
|
if (b)
|
|
<span class="caret">^~~~~~</span>
|
|
<b>sometimes-uninit.cpp:2:8: <span class="note">note:</span></b> initialize the variable 'n' to silence this warning
|
|
int n;
|
|
<span class="caret">^</span>
|
|
<span class="caret"> = 0</span>
|
|
</pre>
|
|
|
|
This functionality can be enabled or disabled separately from
|
|
<tt>-Wuninitialized</tt> with the <tt>-Wsometimes-uninitialized</tt> warning
|
|
flag.</li>
|
|
</ul>
|
|
|
|
|
|
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
|
|
<h3 id="cchanges">C Language Changes in Clang</h3>
|
|
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
|
|
|
|
<h4 id="c11changes">C11 Feature Support</h4>
|
|
|
|
<p>...</p>
|
|
|
|
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
|
|
<h3 id="cxxchanges">C++ Language Changes in Clang</h3>
|
|
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
|
|
|
|
<h4 id="cxx11changes">C++11 Feature Support</h4>
|
|
|
|
<p>...</p>
|
|
|
|
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
|
|
<h3 id="objcchanges">Objective-C Language Changes in Clang</h3>
|
|
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
|
|
|
|
<p>...</p>
|
|
|
|
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
|
|
<h3 id="apichanges">Internal API Changes</h3>
|
|
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
|
|
|
|
<p>These are major API changes that have happened since the 3.1 release of
|
|
Clang. If upgrading an external codebase that uses Clang as a library, this
|
|
section should help get you past the largest hurdles of upgrading.</p>
|
|
|
|
<h4 id="api1">API change 1</h4>
|
|
|
|
<p>...</p>
|
|
|
|
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
|
|
<h3 id="pythonchanges">Python Binding Changes</h3>
|
|
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
|
|
|
|
The following methods have been added:
|
|
<ul>
|
|
<li>...</li>
|
|
</ul>
|
|
|
|
<!-- ======================================================================= -->
|
|
<h2 id="knownproblems">Significant Known Problems</h2>
|
|
<!-- ======================================================================= -->
|
|
|
|
<!-- ======================================================================= -->
|
|
<h2 id="additionalinfo">Additional Information</h2>
|
|
<!-- ======================================================================= -->
|
|
|
|
<p>A wide variety of additional information is available on the
|
|
<a href="http://clang.llvm.org/">Clang web page</a>. The web page contains
|
|
versions of the API documentation which are up-to-date with the Subversion
|
|
version of the source code. You can access versions of these documents
|
|
specific to this release by going into the "<tt>clang/doc/</tt>" directory in
|
|
the Clang tree.</p>
|
|
|
|
<p>If you have any questions or comments about Clang, please feel free to
|
|
contact us via
|
|
the <a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev"> mailing
|
|
list</a>.</p>
|
|
|
|
<!-- ======================================================================= -->
|
|
<!-- Likely 3.1 release notes -->
|
|
<!-- ======================================================================= -->
|
|
<!--
|
|
This is just a section to hold things that have already gotten started and
|
|
should likely pick up proper release notes in 3.1.
|
|
|
|
- C1X and C++11 atomics infrastructure and support
|
|
- CUDA support?
|
|
|
|
-->
|
|
|
|
</div>
|
|
</body>
|
|
</html>
|