Benjamin Kramer | 665a8dc | 2012-01-15 15:26:07 +0000 | [diff] [blame] | 1 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" |
| 2 | "http://www.w3.org/TR/html4/strict.dtd"> |
Chandler Carruth | c00c0c3 | 2011-11-28 07:16:19 +0000 | [diff] [blame] | 3 | <html> |
| 4 | <head> |
Bill Wendling | c0bb312 | 2012-05-24 06:42:56 +0000 | [diff] [blame] | 5 | <title>Clang 3.2 Release Notes</title> |
Benjamin Kramer | 665a8dc | 2012-01-15 15:26:07 +0000 | [diff] [blame] | 6 | <link type="text/css" rel="stylesheet" href="../menu.css"> |
| 7 | <link type="text/css" rel="stylesheet" href="../content.css"> |
Chandler Carruth | c00c0c3 | 2011-11-28 07:16:19 +0000 | [diff] [blame] | 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 | |
Bill Wendling | c0bb312 | 2012-05-24 06:42:56 +0000 | [diff] [blame] | 20 | <h1>Clang 3.2 Release Notes</h1> |
Chandler Carruth | c00c0c3 | 2011-11-28 07:16:19 +0000 | [diff] [blame] | 21 | |
Benjamin Kramer | 665a8dc | 2012-01-15 15:26:07 +0000 | [diff] [blame] | 22 | <img style="float:right" src="http://llvm.org/img/DragonSmall.png" |
Chandler Carruth | c00c0c3 | 2011-11-28 07:16:19 +0000 | [diff] [blame] | 23 | width="136" height="136" alt="LLVM Dragon Logo"> |
| 24 | |
| 25 | <ul> |
| 26 | <li><a href="#intro">Introduction</a></li> |
Bill Wendling | c0bb312 | 2012-05-24 06:42:56 +0000 | [diff] [blame] | 27 | <li><a href="#whatsnew">What's New in Clang 3.2?</a> |
Chandler Carruth | c00c0c3 | 2011-11-28 07:16:19 +0000 | [diff] [blame] | 28 | <ul> |
| 29 | <li><a href="#majorfeatures">Major New Features</a></li> |
| 30 | <li><a href="#cchanges">C Language Changes</a></li> |
Richard Smith | 45fb995 | 2012-02-16 00:32:27 +0000 | [diff] [blame] | 31 | <li><a href="#cxxchanges">C++ Language Changes</a></li> |
Jean-Daniel Dupas | 3fd8087 | 2012-03-03 13:37:22 +0000 | [diff] [blame] | 32 | <li><a href="#objcchanges">Objective-C Language Changes</a></li> |
Chandler Carruth | c00c0c3 | 2011-11-28 07:16:19 +0000 | [diff] [blame] | 33 | <li><a href="#apichanges">Internal API Changes</a></li> |
Gregory Szorc | 6341900 | 2012-05-12 20:45:56 +0000 | [diff] [blame] | 34 | <li><a href="#pythonchanges">Python Binding Changes</a></li> |
Richard Smith | 855746b | 2011-11-28 20:02:05 +0000 | [diff] [blame] | 35 | </ul> |
Chandler Carruth | c00c0c3 | 2011-11-28 07:16:19 +0000 | [diff] [blame] | 36 | </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 Wendling | c0bb312 | 2012-05-24 06:42:56 +0000 | [diff] [blame] | 45 | <h1 style="color:red">These are in-progress notes for the upcoming Clang 3.2 |
Chandler Carruth | c00c0c3 | 2011-11-28 07:16:19 +0000 | [diff] [blame] | 46 | release.<br> |
| 47 | You may prefer the |
Bill Wendling | c0bb312 | 2012-05-24 06:42:56 +0000 | [diff] [blame] | 48 | <a href="http://llvm.org/releases/3.1/docs/ClangReleaseNotes.html">Clang 3.1 |
Chandler Carruth | c00c0c3 | 2011-11-28 07:16:19 +0000 | [diff] [blame] | 49 | Release Notes</a>.</h1> |
Chandler Carruth | c00c0c3 | 2011-11-28 07:16:19 +0000 | [diff] [blame] | 50 | |
| 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 Wendling | c0bb312 | 2012-05-24 06:42:56 +0000 | [diff] [blame] | 56 | 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 Carruth | c00c0c3 | 2011-11-28 07:16:19 +0000 | [diff] [blame] | 62 | |
| 63 | <p>For more information about Clang or LLVM, including information about the |
Bill Wendling | c0bb312 | 2012-05-24 06:42:56 +0000 | [diff] [blame] | 64 | 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 Carruth | c00c0c3 | 2011-11-28 07:16:19 +0000 | [diff] [blame] | 67 | |
| 68 | <p>Note that if you are reading this file from a Subversion checkout or the main |
Bill Wendling | c0bb312 | 2012-05-24 06:42:56 +0000 | [diff] [blame] | 69 | 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 Carruth | c00c0c3 | 2011-11-28 07:16:19 +0000 | [diff] [blame] | 72 | |
| 73 | <!-- ======================================================================= --> |
Bill Wendling | c0bb312 | 2012-05-24 06:42:56 +0000 | [diff] [blame] | 74 | <h2 id="whatsnew">What's New in Clang 3.2?</h2> |
Chandler Carruth | c00c0c3 | 2011-11-28 07:16:19 +0000 | [diff] [blame] | 75 | <!-- ======================================================================= --> |
| 76 | |
| 77 | <p>Some of the major new features and improvements to Clang are listed here. |
Bill Wendling | c0bb312 | 2012-05-24 06:42:56 +0000 | [diff] [blame] | 78 | 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 Carruth | c00c0c3 | 2011-11-28 07:16:19 +0000 | [diff] [blame] | 81 | |
| 82 | <!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = --> |
| 83 | <h3 id="majorfeatures">Major New Features</h3> |
| 84 | <!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = --> |
| 85 | |
Richard Smith | b264702 | 2012-05-25 02:35:34 +0000 | [diff] [blame] | 86 | <h4 id="diagnostics">Improvements to Clang's diagnostics</h4> |
Chandler Carruth | a0df07d | 2011-11-28 22:17:58 +0000 | [diff] [blame] | 87 | |
Richard Smith | b264702 | 2012-05-25 02:35:34 +0000 | [diff] [blame] | 88 | <p>Clang's diagnostics are constantly being improved to catch more issues, |
| 89 | explain them more clearly, and provide more accurate source information about |
| 90 | them. 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> |
| 98 | int f(bool b) { |
| 99 | int n; |
| 100 | if (b) |
| 101 | n = 1; |
| 102 | return n; |
| 103 | } |
| 104 | |
Richard Smith | bdb97ff | 2012-05-26 06:20:46 +0000 | [diff] [blame] | 105 | <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 Smith | b264702 | 2012-05-25 02:35:34 +0000 | [diff] [blame] | 106 | if (b) |
| 107 | <span class="caret">^</span> |
Richard Smith | bdb97ff | 2012-05-26 06:20:46 +0000 | [diff] [blame] | 108 | <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 Smith | b264702 | 2012-05-25 02:35:34 +0000 | [diff] [blame] | 114 | <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 Klimek | 92f7409 | 2012-04-04 12:53:16 +0000 | [diff] [blame] | 125 | |
Chandler Carruth | c00c0c3 | 2011-11-28 07:16:19 +0000 | [diff] [blame] | 126 | <!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = --> |
| 127 | <h3 id="cchanges">C Language Changes in Clang</h3> |
| 128 | <!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = --> |
| 129 | |
Richard Smith | 45fb995 | 2012-02-16 00:32:27 +0000 | [diff] [blame] | 130 | <h4 id="c11changes">C11 Feature Support</h4> |
Richard Smith | 62d730f | 2011-11-28 22:48:25 +0000 | [diff] [blame] | 131 | |
Bill Wendling | c0bb312 | 2012-05-24 06:42:56 +0000 | [diff] [blame] | 132 | <p>...</p> |
Richard Smith | 45fb995 | 2012-02-16 00:32:27 +0000 | [diff] [blame] | 133 | |
Chandler Carruth | c00c0c3 | 2011-11-28 07:16:19 +0000 | [diff] [blame] | 134 | <!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = --> |
| 135 | <h3 id="cxxchanges">C++ Language Changes in Clang</h3> |
| 136 | <!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = --> |
| 137 | |
Richard Smith | 855746b | 2011-11-28 20:02:05 +0000 | [diff] [blame] | 138 | <h4 id="cxx11changes">C++11 Feature Support</h4> |
Bill Wendling | c0bb312 | 2012-05-24 06:42:56 +0000 | [diff] [blame] | 139 | |
| 140 | <p>...</p> |
Richard Smith | 855746b | 2011-11-28 20:02:05 +0000 | [diff] [blame] | 141 | |
Chandler Carruth | c00c0c3 | 2011-11-28 07:16:19 +0000 | [diff] [blame] | 142 | <!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = --> |
| 143 | <h3 id="objcchanges">Objective-C Language Changes in Clang</h3> |
| 144 | <!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = --> |
Chandler Carruth | 4d58212 | 2011-11-29 00:15:23 +0000 | [diff] [blame] | 145 | |
Bill Wendling | c0bb312 | 2012-05-24 06:42:56 +0000 | [diff] [blame] | 146 | <p>...</p> |
Chandler Carruth | 52e375e | 2011-11-29 00:15:25 +0000 | [diff] [blame] | 147 | |
Chandler Carruth | c00c0c3 | 2011-11-28 07:16:19 +0000 | [diff] [blame] | 148 | <!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = --> |
| 149 | <h3 id="apichanges">Internal API Changes</h3> |
| 150 | <!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = --> |
| 151 | |
Bill Wendling | c0bb312 | 2012-05-24 06:42:56 +0000 | [diff] [blame] | 152 | <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 Carruth | c4dbffa | 2011-11-28 18:55:47 +0000 | [diff] [blame] | 155 | |
Richard Smith | 45fb995 | 2012-02-16 00:32:27 +0000 | [diff] [blame] | 156 | <h4 id="api1">API change 1</h4> |
Bill Wendling | c0bb312 | 2012-05-24 06:42:56 +0000 | [diff] [blame] | 157 | |
| 158 | <p>...</p> |
Chandler Carruth | c4dbffa | 2011-11-28 18:55:47 +0000 | [diff] [blame] | 159 | |
Gregory Szorc | 6341900 | 2012-05-12 20:45:56 +0000 | [diff] [blame] | 160 | <!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = --> |
| 161 | <h3 id="pythonchanges">Python Binding Changes</h3> |
| 162 | <!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = --> |
| 163 | |
| 164 | The following methods have been added: |
| 165 | <ul> |
Bill Wendling | c0bb312 | 2012-05-24 06:42:56 +0000 | [diff] [blame] | 166 | <li>...</li> |
Gregory Szorc | 6341900 | 2012-05-12 20:45:56 +0000 | [diff] [blame] | 167 | </ul> |
| 168 | |
Chandler Carruth | c00c0c3 | 2011-11-28 07:16:19 +0000 | [diff] [blame] | 169 | <!-- ======================================================================= --> |
| 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 Wendling | c0bb312 | 2012-05-24 06:42:56 +0000 | [diff] [blame] | 178 | <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 Carruth | c00c0c3 | 2011-11-28 07:16:19 +0000 | [diff] [blame] | 183 | |
| 184 | <p>If you have any questions or comments about Clang, please feel free to |
Bill Wendling | c0bb312 | 2012-05-24 06:42:56 +0000 | [diff] [blame] | 185 | contact us via |
| 186 | the <a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev"> mailing |
| 187 | list</a>.</p> |
Chandler Carruth | 59abf06 | 2011-11-28 22:12:44 +0000 | [diff] [blame] | 188 | |
| 189 | <!-- ======================================================================= --> |
| 190 | <!-- Likely 3.1 release notes --> |
| 191 | <!-- ======================================================================= --> |
| 192 | <!-- |
| 193 | This is just a section to hold things that have already gotten started and |
| 194 | should 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 Kramer | 665a8dc | 2012-01-15 15:26:07 +0000 | [diff] [blame] | 201 | </div> |
Chandler Carruth | c00c0c3 | 2011-11-28 07:16:19 +0000 | [diff] [blame] | 202 | </body> |
| 203 | </html> |