aboutsummaryrefslogtreecommitdiff
path: root/docs/ReleaseNotes.html
diff options
context:
space:
mode:
Diffstat (limited to 'docs/ReleaseNotes.html')
-rw-r--r--docs/ReleaseNotes.html325
1 files changed, 0 insertions, 325 deletions
diff --git a/docs/ReleaseNotes.html b/docs/ReleaseNotes.html
deleted file mode 100644
index a1ba15ce1cc8..000000000000
--- a/docs/ReleaseNotes.html
+++ /dev/null
@@ -1,325 +0,0 @@
-<!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="#newflags">New Compiler Flags</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>
-
-<!-- ======================================================================= -->
-<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 recognize 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>
-
- <li>Template type diffing improves the display of diagnostics with templated
- types in them.
-
-<pre>
-int f(vector&lt;map&lt;int, double&gt;&gt;);
-int x = f(vector&lt;map&lt;int, float&gt;&gt;());
-</pre>
- The error message is the same, but the note is different based on the options selected.
-<pre>
-<b>template-diff.cpp:5:9: <span class="error">error:</span> no matching function for call to 'f'</b>
-int x = f(vector&lt;map&lt;int, float&gt;&gt;());
- <span class="caret">^</span>
-</pre>
- Templated type diffing with type elision (default):
-<pre>
-<b>template-diff.cpp:4:5: <span class="note">note:</span></b> candidate function not viable: no known conversion from 'vector&lt;map&lt;[...], <span class="template-highlight">float</span>&gt;&gt;' to 'vector&lt;map&lt;[...], <span class="template-highlight">double</span>&gt;&gt;' for 1st argument;
-int f(vector&lt;map&lt;int, double&gt;&gt;);
- <span class="caret">^</span>
-</pre>
- Templated type diffing without type elision (-fno-elide-type):
-<pre>
-<b>template-diff.cpp:4:5: <span class="note">note:</span></b> candidate function not viable: no known conversion from 'vector&lt;map&lt;int, <span class="template-highlight">float</span>&gt;&gt;' to 'vector&lt;map&lt;int, <span class="template-highlight">double</span>&gt;&gt;' for 1st argument;
-int f(vector&lt;map&lt;int, double&gt;&gt;);
- <span class="caret">^</span>
-</pre>
- Templated tree printing with type elision (-fdiagnostics-show-template-tree):
-<pre>
-<b>template-diff.cpp:4:5: <span class="note">note:</span></b> candidate function not viable: no known conversion for 1st argument;
- vector&lt;
- map&lt;
- [...],
- [<span class="template-highlight">float</span> != <span class="template-highlight">double</span>]&gt;&gt;
-int f(vector&lt;map&lt;int, double&gt;&gt;);
- <span class="caret">^</span>
-</pre>
- Templated tree printing without type elision (-fdiagnostics-show-template-tree -fno-elide-type):
-<pre>
-<b>template-diff.cpp:4:5: <span class="note">note:</span></b> candidate function not viable: no known conversion for 1st argument;
- vector&lt;
- map&lt;
- int,
- [<span class="template-highlight">float</span> != <span class="template-highlight">double</span>]&gt;&gt;
-int f(vector&lt;map&lt;int, double&gt;&gt;);
- <span class="caret">^</span>
-</pre>
-
- </li>
-
- <li>The Address Sanitizer feature and Clang's <tt>-fcatch-undefined-behavior</tt> option have been moved to a unified flag set:
- <tt>-fsanitize</tt>. This flag can be used to enable the different dynamic checking tools when building. For example,
- <tt>-faddress-sanitizer</tt> is now <tt>-fsanitize=address</tt>, and <tt>-fcatch-undefined-behavior</tt> is now
- <tt>-fsanitize=undefined</tt>. With this release the set of checks available continues to grow, see the Clang
- documentation and specific sanitizer notes below for details.
- </li>
-
-</ul>
-
-<h4 id="tlsmodel">Support for <code>tls_model</code> attribute</h4>
-
-<p>Clang now supports the <code>tls_model</code> attribute, allowing code that
-uses thread-local storage to explicitly select which model to use. The available
-models are <code>"global-dynamic"</code>, <code>"local-dynamic"</code>,
-<code>"initial-exec"</code> and <code>"local-exec"</code>. See
-<a href="http://www.akkadia.org/drepper/tls.pdf">ELF Handling For Thread-Local
- Storage</a> for more information.</p>
-
-<p>The compiler is free to choose a different model if the specified model is not
-supported by the target, or if the compiler determines that a more specific
-model can be used.
-</p>
-
-<h4>Type safety attributes</h4>
-<p>Clang now supports type safety attributes that allow checking during compile
-time that 'void *' function arguments and arguments for variadic functions are
-of a particular type which is determined by some other argument to the same
-function call.</p>
-
-<p>Usecases include:</p>
-<ul>
-<li>MPI library implementations, where these attributes enable checking that
- buffer type matches the passed <code>MPI_Datatype</code>;</li>
-<li> HDF5 library -- similar usecase as for MPI;</li>
-<li> checking types of variadic functions' arguments for functions like
-<code>fcntl()</code> and <code>ioctl()</code>.</li>
-</ul>
-
-<p>See entries for <code>argument_with_type_tag</code>,
-<code>pointer_with_type_tag</code> and <code>type_tag_for_datatype</code>
-attributes in Clang language extensions documentation.</p>
-
-<h4>Documentation comment support</h4>
-<p>Clang now supports documentation comments written in a Doxygen-like syntax.
-Clang parses the comments and can detect syntactic and semantic errors in
-comments. These warnings are off by default. Pass <tt>-Wdocumentation</tt>
-flag to enable warnings about documentation comments.</p>
-
-<p>For example, given:</p>
-
-<pre>/// \param [in] Str the string.
-/// \returns a modified string.
-void do_something(const std::string &amp;str);</pre>
-
-<p><tt>clang -Wdocumentation</tt> will emit two warnings:</p>
-
-<pre><b>doc-test.cc:3:6: <span class="warning">warning:</span></b> '\returns' command used in a comment that is attached to a function returning void [-Wdocumentation]
-/// \returns a modified string.
- <span class="caret">~^~~~~~~~~~~~~~~~~~~~~~~~~~</span>
-<b>doc-test.cc:2:17: <span class="warning">warning:</span></b> parameter 'Str' not found in the function declaration [-Wdocumentation]
-/// \param [in] Str the string.
- <span class="caret">^~~</span>
-<b>doc-test.cc:2:17: <span class="note">note:</span></b> did you mean 'str'?
-/// \param [in] Str the string.
- <span class="caret">^~~</span>
- <span class="caret">str</span></pre>
-
-<p>libclang includes a new API, <tt>clang_FullComment_getAsXML</tt>, to convert
-comments to XML documents. This API can be used to build documentation
-extraction tools.</p>
-
-<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
-<h3 id="newflags">New Compiler Flags</h3>
-<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
-<ul>
- <li><tt>-gline-tables-only</tt> controls the
- <a href="http://clang.llvm.org/docs/UsersManual.html#debuginfosize">size of debug information</a>.
- This flag tells Clang to emit debug info which is just enough to obtain stack traces with
- function names, file names and line numbers (by such tools as gdb or addr2line).
- Debug info for variables or function parameters is not produced, which reduces
- the size of the resulting binary.
-
- <li><tt>-ftls-model</tt> controls which TLS model to use for thread-local
- variables. This can be overridden per variable using the
- <a href="#tlsmodel"><tt>tls_model</tt> attribute</a> mentioned above.
- For more details, see the <a href="UsersManual.html#opt_ftls-model">User's
- Manual</a>.</li>
-</ul>
-
-<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
-<h3 id="cchanges">C Language Changes in Clang</h3>
-<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
-
-<h4 id="c11changes">C11 Feature Support</h4>
-
-<p>Clang 3.2 adds support for the C11 <code>_Alignof</code> keyword, pedantic warning through option
- <code>-Wempty-translation-unit</code> (C11 6.9p1) </p>
-
-<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
-<h3 id="cxxchanges">C++ Language Changes in Clang</h3>
-<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
-
-<h4 id="cxx11changes">C++11 Feature Support</h4>
-
-<p>Clang 3.2 supports <a href="http://clang.llvm.org/cxx_status.html#cxx11">most of the language features</a>
- added in the latest ISO C++ standard,<a href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=50372">C++ 2011</a>.
- Use <code>-std=c++11</code> or <code>-std=gnu++11</code> to enable support for these features. In addition to the features supported by Clang 3.1, the
- following features have been added:</p>
-
-<ul>
- <li>Implemented the C++11 discarded value expression rules for volatile lvalues.</li>
- <li>Support for the C++11 enum forward declarations.</li>
- <li>Handling of C++11 attribute namespaces (automatically).</li>
- <li>Implemented C++11 [conv.prom]p4: an enumeration with a fixed underlying type has integral promotions
- to both its underlying type and to its underlying type's promoted type.</li>
-</ul>
-
-<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
-<h3 id="objcchanges">Objective-C Language Changes in Clang</h3>
-<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
-
-<p>Bug-fixes, no functionality changes.</p>
-
-<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
-<h3 id="pythonchanges">Python Binding Changes</h3>
-<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
-
-The following classes and methods have been added:
-<ul>
- <li>class CompilationDatabaseError(Exception)</li>
- <li>class CompileCommand(object)</li>
- <li>class CompileCommands(object)</li>
- <li>class CompilationDatabase(ClangObject)</li>
- <li>Cursor.is_static_method</li>
- <li>Cursor.is_static_method</li>
- <li>SourceLocation.from_offset</li>
- <li>Cursor.is_static_method</li>
-</ul>
-
-<!-- ======================================================================= -->
-<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>
-
-
-</div>
-</body>
-</html>