blob: 8f30808f0459f63bc6fd9847a9e899227a9da985 [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
105<b>sometimes-uninit.cpp:5:10: <span class="warning">warning:</span> variable 'n' is sometimes uninitialized when used here [-Wsometimes-uninitialized]</b>
106 return n;
107 <span class="caret">^</span>
108<b>sometimes-uninit.cpp:3:7: <span class="note">note:</span></b> uninitialized use occurs whenever 'if' condition is false
109 if (b)
110 <span class="caret">^</span>
111<b>sometimes-uninit.cpp:2:8: <span class="note">note:</span></b> initialize the variable 'n' to silence this warning
112 int n;
113 <span class="caret">^</span>
114 <span class="caret"> = 0</span>
115</pre>
116
117 This functionality can be enabled or disabled separately from
118 <tt>-Wuninitialized</tt> with the <tt>-Wsometimes-uninitialized</tt> warning
119 flag.</li>
120</ul>
121
Manuel Klimek92f74092012-04-04 12:53:16 +0000122
Chandler Carruthc00c0c32011-11-28 07:16:19 +0000123<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
124<h3 id="cchanges">C Language Changes in Clang</h3>
125<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
126
Richard Smith45fb9952012-02-16 00:32:27 +0000127<h4 id="c11changes">C11 Feature Support</h4>
Richard Smith62d730f2011-11-28 22:48:25 +0000128
Bill Wendlingc0bb3122012-05-24 06:42:56 +0000129<p>...</p>
Richard Smith45fb9952012-02-16 00:32:27 +0000130
Chandler Carruthc00c0c32011-11-28 07:16:19 +0000131<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
132<h3 id="cxxchanges">C++ Language Changes in Clang</h3>
133<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
134
Richard Smith855746b2011-11-28 20:02:05 +0000135<h4 id="cxx11changes">C++11 Feature Support</h4>
Bill Wendlingc0bb3122012-05-24 06:42:56 +0000136
137<p>...</p>
Richard Smith855746b2011-11-28 20:02:05 +0000138
Chandler Carruthc00c0c32011-11-28 07:16:19 +0000139<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
140<h3 id="objcchanges">Objective-C Language Changes in Clang</h3>
141<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
Chandler Carruth4d582122011-11-29 00:15:23 +0000142
Bill Wendlingc0bb3122012-05-24 06:42:56 +0000143<p>...</p>
Chandler Carruth52e375e2011-11-29 00:15:25 +0000144
Chandler Carruthc00c0c32011-11-28 07:16:19 +0000145<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
146<h3 id="apichanges">Internal API Changes</h3>
147<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
148
Bill Wendlingc0bb3122012-05-24 06:42:56 +0000149<p>These are major API changes that have happened since the 3.1 release of
150 Clang. If upgrading an external codebase that uses Clang as a library, this
151 section should help get you past the largest hurdles of upgrading.</p>
Chandler Carruthc4dbffa2011-11-28 18:55:47 +0000152
Richard Smith45fb9952012-02-16 00:32:27 +0000153<h4 id="api1">API change 1</h4>
Bill Wendlingc0bb3122012-05-24 06:42:56 +0000154
155<p>...</p>
Chandler Carruthc4dbffa2011-11-28 18:55:47 +0000156
Gregory Szorc63419002012-05-12 20:45:56 +0000157<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
158<h3 id="pythonchanges">Python Binding Changes</h3>
159<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
160
161The following methods have been added:
162<ul>
Bill Wendlingc0bb3122012-05-24 06:42:56 +0000163 <li>...</li>
Gregory Szorc63419002012-05-12 20:45:56 +0000164</ul>
165
Chandler Carruthc00c0c32011-11-28 07:16:19 +0000166<!-- ======================================================================= -->
167<h2 id="knownproblems">Significant Known Problems</h2>
168<!-- ======================================================================= -->
169
170<!-- ======================================================================= -->
171<h2 id="additionalinfo">Additional Information</h2>
172<!-- ======================================================================= -->
173
174<p>A wide variety of additional information is available on the
Bill Wendlingc0bb3122012-05-24 06:42:56 +0000175 <a href="http://clang.llvm.org/">Clang web page</a>. The web page contains
176 versions of the API documentation which are up-to-date with the Subversion
177 version of the source code. You can access versions of these documents
178 specific to this release by going into the "<tt>clang/doc/</tt>" directory in
179 the Clang tree.</p>
Chandler Carruthc00c0c32011-11-28 07:16:19 +0000180
181<p>If you have any questions or comments about Clang, please feel free to
Bill Wendlingc0bb3122012-05-24 06:42:56 +0000182 contact us via
183 the <a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev"> mailing
184 list</a>.</p>
Chandler Carruth59abf062011-11-28 22:12:44 +0000185
186<!-- ======================================================================= -->
187<!-- Likely 3.1 release notes -->
188<!-- ======================================================================= -->
189<!--
190This is just a section to hold things that have already gotten started and
191should likely pick up proper release notes in 3.1.
192
193- C1X and C++11 atomics infrastructure and support
194- CUDA support?
195
196-->
197
Benjamin Kramer665a8dc2012-01-15 15:26:07 +0000198</div>
Chandler Carruthc00c0c32011-11-28 07:16:19 +0000199</body>
200</html>