<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
          "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Clang 3.1 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.1 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.1?</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.1
release.<br>
You may prefer the
<a href="http://llvm.org/releases/3.0/docs/ClangReleaseNotes.html">Clang 3.0
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.1.  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.1?</h2>
<!-- ======================================================================= -->

<p>Some of the major new features and improvements to Clang are listed here.
Generic improvements to Clang as a whole or two 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="majorfeature1">Feature 1</h4>
...

<h4 id="diagnostics">New and better diagnostics</h4>

<p>New: <code>-Wdangling-else</code>, <code>-Wstrncat-size</code>, ...</p>

<p>Improved: <code>-Wformat</code>, <code>-Wempty-body</code>,
<code>-Wliteral-conversion</code>, ...</p>

<h4 id="tooling">Tooling</h4>
<!-- FIXME: add a link to the tooling documentation once that's written. -->
<p>Added an API to enable clang-based standalone tools, including initial build
system integration.</p>

<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3 id="cchanges">C Language Changes in Clang</h3>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->

<h4 id="c11changes">C11 Feature Support</h4>

<p>Clang 3.1 adds support for anonymous structs and anonymous unions, added in
the latest ISO C standard. Use <code>-std=c11</code> or <code>-std=gnu11</code>
to enable support for the new language standard. The new C11 features are
backwards-compatible and are available as an extension in all language
modes.</p>

<p>All warning and language selection flags which previously accepted
<code>c1x</code> have been updated to accept <code>c11</code>. The old
<code>c1x</code> forms have been removed.</p>

<p>Clang 3.1 adds a family of <code>__c11_atomic</code> builtins corresponding
   directly to the <code>_explict</code> versions of the C11 atomic functions.
   This means that C11's <code>&lt;stdatomic.h&gt;</code> can be implemented in
   a small set of trivial macros.  </p>

<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3 id="cxxchanges">C++ Language Changes in Clang</h3>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->

<h4 id="cxx11changes">C++11 Feature Support</h4>
<p>Clang 3.1 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.0, the
following are now considered to be of production quality:
<ul>
  <li>Generalized constant expressions</li>
  <li>Lambda expressions</li>
  <li>Generalized initializers</li>
  <li>Unrestricted unions</li>
  <li>User-defined literals</li>
  <li>Forward-declared enumerations</li>
  <li>Atomics (both libc++'s and libstdc++4.7's <tt>&lt;atomic&gt;</tt> are
      supported)</li>
</ul>

<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3 id="objcchanges">Objective-C Language Changes in Clang</h3>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
Clang 3.1 introduces several new Objective-C language features and improvements.

<h4 id="objcwformat">Format string checking for NSString literals</h4>

<code>-Wformat</code> now checks <code>@"nsstring literals"</code>.

<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3 id="apichanges">Internal API Changes</h3>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->

These are major API changes that have happened since the 3.0 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.

<h4 id="api1">API change 1</h4>
...

<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
<h3 id="pythonchanges">Python Binding Changes</h3>
<!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->

The following methods have been added:
<ul>
  <li>SourceLocation.from_position (static)</li>
  <li>SourceLocation.__eq__ and SourceLocation.__ne__</li>
  <li>SourceRange.__eq__ and SourceRange.__ne__</li>
  <li>Diagnostic.category_number (property)</li>
  <li>Diagnostic.category_name (property)</li>
  <li>Diagnostic.option (property)</li>
  <li>Diagnostic.disable_option (property)</li>
  <li>CursorKind.is_translation_unit</li>
  <li>CursorKind.is_preprocessing</li>
  <li>CursorKind.is_unexposed</li>
  <li>Cursor.from_location (static)</li>
  <li>Cursor.underlying_typedef_type (property)</li>
  <li>Cursor.enum_type (property)</li>
  <li>Cursor.objc_type_encoding (property)</li>
  <li>Cursor.hash</li>
  <li>TypeKind.spelling</li>
  <li>Type.argument_types</li>
  <li>Type.element_type (property)</li>
  <li>Type.element_count (property)</li>
  <li>Type.is_function_variadic</li>
  <li>Type.is_pod</li>
  <li>Type.get_array_element_type</li>
  <li>Type.get_array_size</li>
  <li>Type.__eq__ and Type.__ne__</li>
  <li>File.from_name (static)</li>
  <li>File.__str__ and File.__repr__</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>
