blob: 509e149ad283223f49d7f39bda594426d5406924 [file] [log] [blame]
Benjamin Kramer665a8dc2012-01-15 15:26:07 +00001<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
2 "http://www.w3.org/TR/html4/strict.dtd">
Chandler Carruthc00c0c32011-11-28 07:16:19 +00003<html>
4<head>
Bill Wendlingc0bb3122012-05-24 06:42:56 +00005<title>Clang 3.2 Release Notes</title>
Benjamin Kramer665a8dc2012-01-15 15:26:07 +00006<link type="text/css" rel="stylesheet" href="../menu.css">
7<link type="text/css" rel="stylesheet" href="../content.css">
Chandler Carruthc00c0c32011-11-28 07:16:19 +00008<style type="text/css">
9td {
10 vertical-align: top;
11}
12</style>
13</head>
14<body>
15
16<!--#include virtual="../menu.html.incl"-->
17
18<div id="content">
19
Bill Wendlingc0bb3122012-05-24 06:42:56 +000020<h1>Clang 3.2 Release Notes</h1>
Chandler Carruthc00c0c32011-11-28 07:16:19 +000021
Benjamin Kramer665a8dc2012-01-15 15:26:07 +000022<img style="float:right" src="http://llvm.org/img/DragonSmall.png"
Chandler Carruthc00c0c32011-11-28 07:16:19 +000023 width="136" height="136" alt="LLVM Dragon Logo">
24
25<ul>
26 <li><a href="#intro">Introduction</a></li>
Bill Wendlingc0bb3122012-05-24 06:42:56 +000027 <li><a href="#whatsnew">What's New in Clang 3.2?</a>
Chandler Carruthc00c0c32011-11-28 07:16:19 +000028 <ul>
29 <li><a href="#majorfeatures">Major New Features</a></li>
30 <li><a href="#cchanges">C Language Changes</a></li>
Richard Smith45fb9952012-02-16 00:32:27 +000031 <li><a href="#cxxchanges">C++ Language Changes</a></li>
Jean-Daniel Dupas3fd80872012-03-03 13:37:22 +000032 <li><a href="#objcchanges">Objective-C Language Changes</a></li>
Chandler Carruthc00c0c32011-11-28 07:16:19 +000033 <li><a href="#apichanges">Internal API Changes</a></li>
Gregory Szorc63419002012-05-12 20:45:56 +000034 <li><a href="#pythonchanges">Python Binding Changes</a></li>
Richard Smith855746b2011-11-28 20:02:05 +000035 </ul>
Chandler Carruthc00c0c32011-11-28 07:16:19 +000036 </li>
37 <li><a href="#knownproblems">Known Problems</a></li>
38 <li><a href="#additionalinfo">Additional Information</a></li>
39</ul>
40
41<div class="doc_author">
42 <p>Written by the <a href="http://llvm.org/">LLVM Team</a></p>
43</div>
44
Bill Wendlingc0bb3122012-05-24 06:42:56 +000045<h1 style="color:red">These are in-progress notes for the upcoming Clang 3.2
Chandler Carruthc00c0c32011-11-28 07:16:19 +000046release.<br>
47You may prefer the
Bill Wendlingc0bb3122012-05-24 06:42:56 +000048<a href="http://llvm.org/releases/3.1/docs/ClangReleaseNotes.html">Clang 3.1
Chandler Carruthc00c0c32011-11-28 07:16:19 +000049Release Notes</a>.</h1>
Chandler Carruthc00c0c32011-11-28 07:16:19 +000050
51<!-- ======================================================================= -->
52<h2 id="intro">Introduction</h2>
53<!-- ======================================================================= -->
54
55<p>This document contains the release notes for the Clang C/C++/Objective-C
Bill Wendlingc0bb3122012-05-24 06:42:56 +000056 frontend, part of the LLVM Compiler Infrastructure, release 3.2. Here we
57 describe the status of Clang in some detail, including major improvements
58 from the previous release and new feature work. For the general LLVM release
59 notes, see <a href="http://llvm.org/docs/ReleaseNotes.html">the LLVM
60 documentation</a>. All LLVM releases may be downloaded from the
61 <a href="http://llvm.org/releases/">LLVM releases web site</a>.</p>
Chandler Carruthc00c0c32011-11-28 07:16:19 +000062
63<p>For more information about Clang or LLVM, including information about the
Bill Wendlingc0bb3122012-05-24 06:42:56 +000064 latest release, please check out the main please see the
65 <a href="http://clang.llvm.org">Clang Web Site</a> or the
66 <a href="http://llvm.org">LLVM Web Site</a>.
Chandler Carruthc00c0c32011-11-28 07:16:19 +000067
68<p>Note that if you are reading this file from a Subversion checkout or the main
Bill Wendlingc0bb3122012-05-24 06:42:56 +000069 Clang web page, this document applies to the <i>next</i> release, not the
70 current one. To see the release notes for a specific release, please see the
71 <a href="http://llvm.org/releases/">releases page</a>.</p>
Chandler Carruthc00c0c32011-11-28 07:16:19 +000072
73<!-- ======================================================================= -->
Bill Wendlingc0bb3122012-05-24 06:42:56 +000074<h2 id="whatsnew">What's New in Clang 3.2?</h2>
Chandler Carruthc00c0c32011-11-28 07:16:19 +000075<!-- ======================================================================= -->
76
77<p>Some of the major new features and improvements to Clang are listed here.
Bill Wendlingc0bb3122012-05-24 06:42:56 +000078 Generic improvements to Clang as a whole or to its underlying infrastructure
79 are described first, followed by language-specific sections with improvements
80 to Clang's support for those languages.</p>
Chandler Carruthc00c0c32011-11-28 07:16:19 +000081
82<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
83<h3 id="majorfeatures">Major New Features</h3>
84<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
85
Richard Smithb2647022012-05-25 02:35:34 +000086<h4 id="diagnostics">Improvements to Clang's diagnostics</h4>
Chandler Carrutha0df07d2011-11-28 22:17:58 +000087
Richard Smithb2647022012-05-25 02:35:34 +000088<p>Clang's diagnostics are constantly being improved to catch more issues,
89explain them more clearly, and provide more accurate source information about
90them. The improvements since the 3.1 release include:</p>
91
92<ul>
93 <li><tt>-Wuninitialized</tt> has been taught to recognise uninitialized uses
94 which always occur when an explicitly-written non-constant condition is either
95 <tt>true</tt> or <tt>false</tt>. For example:
96
97<pre>
98int f(bool b) {
99 int n;
100 if (b)
101 n = 1;
102 return n;
103}
104
Richard Smithbdb97ff2012-05-26 06:20:46 +0000105<b>sometimes-uninit.cpp:3:7: <span class="warning">warning:</span> variable 'n' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized]</b>
Richard Smithb2647022012-05-25 02:35:34 +0000106 if (b)
107 <span class="caret">^</span>
Richard Smithbdb97ff2012-05-26 06:20:46 +0000108<b>sometimes-uninit.cpp:5:10: <span class="note">note:</span></b> uninitialized use occurs here
109 return n;
110 <span class="caret">^</span>
111<b>sometimes-uninit.cpp:3:3: <span class="note">note:</span></b> remove the 'if' if its condition is always true
112 if (b)
113 <span class="caret">^~~~~~</span>
Richard Smithb2647022012-05-25 02:35:34 +0000114<b>sometimes-uninit.cpp:2:8: <span class="note">note:</span></b> initialize the variable 'n' to silence this warning
115 int n;
116 <span class="caret">^</span>
117 <span class="caret"> = 0</span>
118</pre>
119
120 This functionality can be enabled or disabled separately from
121 <tt>-Wuninitialized</tt> with the <tt>-Wsometimes-uninitialized</tt> warning
122 flag.</li>
123</ul>
124
Manuel Klimek92f74092012-04-04 12:53:16 +0000125
Chandler Carruthc00c0c32011-11-28 07:16:19 +0000126<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
127<h3 id="cchanges">C Language Changes in Clang</h3>
128<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
129
Richard Smith45fb9952012-02-16 00:32:27 +0000130<h4 id="c11changes">C11 Feature Support</h4>
Richard Smith62d730f2011-11-28 22:48:25 +0000131
Bill Wendlingc0bb3122012-05-24 06:42:56 +0000132<p>...</p>
Richard Smith45fb9952012-02-16 00:32:27 +0000133
Chandler Carruthc00c0c32011-11-28 07:16:19 +0000134<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
135<h3 id="cxxchanges">C++ Language Changes in Clang</h3>
136<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
137
Richard Smith855746b2011-11-28 20:02:05 +0000138<h4 id="cxx11changes">C++11 Feature Support</h4>
Bill Wendlingc0bb3122012-05-24 06:42:56 +0000139
140<p>...</p>
Richard Smith855746b2011-11-28 20:02:05 +0000141
Chandler Carruthc00c0c32011-11-28 07:16:19 +0000142<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
143<h3 id="objcchanges">Objective-C Language Changes in Clang</h3>
144<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
Chandler Carruth4d582122011-11-29 00:15:23 +0000145
Bill Wendlingc0bb3122012-05-24 06:42:56 +0000146<p>...</p>
Chandler Carruth52e375e2011-11-29 00:15:25 +0000147
Chandler Carruthc00c0c32011-11-28 07:16:19 +0000148<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
149<h3 id="apichanges">Internal API Changes</h3>
150<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
151
Bill Wendlingc0bb3122012-05-24 06:42:56 +0000152<p>These are major API changes that have happened since the 3.1 release of
153 Clang. If upgrading an external codebase that uses Clang as a library, this
154 section should help get you past the largest hurdles of upgrading.</p>
Chandler Carruthc4dbffa2011-11-28 18:55:47 +0000155
Richard Smith45fb9952012-02-16 00:32:27 +0000156<h4 id="api1">API change 1</h4>
Bill Wendlingc0bb3122012-05-24 06:42:56 +0000157
158<p>...</p>
Chandler Carruthc4dbffa2011-11-28 18:55:47 +0000159
Gregory Szorc63419002012-05-12 20:45:56 +0000160<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
161<h3 id="pythonchanges">Python Binding Changes</h3>
162<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
163
164The following methods have been added:
165<ul>
Bill Wendlingc0bb3122012-05-24 06:42:56 +0000166 <li>...</li>
Gregory Szorc63419002012-05-12 20:45:56 +0000167</ul>
168
Chandler Carruthc00c0c32011-11-28 07:16:19 +0000169<!-- ======================================================================= -->
170<h2 id="knownproblems">Significant Known Problems</h2>
171<!-- ======================================================================= -->
172
173<!-- ======================================================================= -->
174<h2 id="additionalinfo">Additional Information</h2>
175<!-- ======================================================================= -->
176
177<p>A wide variety of additional information is available on the
Bill Wendlingc0bb3122012-05-24 06:42:56 +0000178 <a href="http://clang.llvm.org/">Clang web page</a>. The web page contains
179 versions of the API documentation which are up-to-date with the Subversion
180 version of the source code. You can access versions of these documents
181 specific to this release by going into the "<tt>clang/doc/</tt>" directory in
182 the Clang tree.</p>
Chandler Carruthc00c0c32011-11-28 07:16:19 +0000183
184<p>If you have any questions or comments about Clang, please feel free to
Bill Wendlingc0bb3122012-05-24 06:42:56 +0000185 contact us via
186 the <a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev"> mailing
187 list</a>.</p>
Chandler Carruth59abf062011-11-28 22:12:44 +0000188
189<!-- ======================================================================= -->
190<!-- Likely 3.1 release notes -->
191<!-- ======================================================================= -->
192<!--
193This is just a section to hold things that have already gotten started and
194should likely pick up proper release notes in 3.1.
195
196- C1X and C++11 atomics infrastructure and support
197- CUDA support?
198
199-->
200
Benjamin Kramer665a8dc2012-01-15 15:26:07 +0000201</div>
Chandler Carruthc00c0c32011-11-28 07:16:19 +0000202</body>
203</html>