<html>
<head>
<title>Clang 3.0 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.0 Release Notes</h1>

<img align=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.0?</a>
    <ul>
      <li><a href="#majorfeatures">Major New Features</a></li>
      <li><a href="#cchanges">C Language Changes</a></li>
      <li><a href="#cxxhanges">C++ Language Changes</a></li>
      <li><a href="#objchanges">Objective-C Language Changes</a></li>
      <li><a href="#apichanges">Internal API Changes</a></li>
  </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 LLVM 3.0
release.<br>
You may prefer the
<a href="http://llvm.org/releases/2.9/docs/ReleaseNotes.html">LLVM 2.9
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.0.  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.0?</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="notes">Unorganized Notes</h4>
<p>These are completely random notes as I'm organizing my thoughts and reviewing
the history. Anything still here needs to be distilled and turned into proper
prose in a section of its own. When doing that, delete the notes.</p>
<ul>
  <li>Make analyzer (especially as used w/ warnings in Clang) much faster</li>
  <li>OpenCL support -- need details from Tanya and Peter -- separate language
  section?</li>
  <li>Building Clang on windows -- mingw, 32 and 64 bit, native windows builds,
  cygwin. get chapuni to flesh out details.</li>
  <li>Compiling C/C++ w/ MinGW (32/64) and Cygwin on Windows -- chapuni</li>
  <li>C++ -- Parsing and AST support for Windows Structured Exception
  Handling.</li>
  <li>C++11 -- noexcept (Sebastian Redl)</li>
  <li>Uninitialized values Clang warning rewrite -- more accurate, faster, able
  to differentiate between the possibility of an uninitialized use and the
  certainty of an uninitialized use.</li>
  <li>Enhancements to PPCallbacks
    <ul>
      <li>exact include paths<li>
    </ul>
  </li>
  <li>Support for language specific address spaces</li>
  <li>Support for compiling on NetBSD systems -- Joerg Sonnenberger to fill
  out</li>
  <li>Support for '--sysroot' based cross-compilation</li>
  <li>Crash recovery handling for libclang clients -- Ted</li>
  <li>Driver support for automatic preparation of reproduction steps for
  compiler crashes -- Chad</li>
  <li>OS Availability attribute -- r128127</li>
  <li>GNU ObjectiveC Runtime support -- David Chisnall</li>
  <li>C++11 -- override</li>
  <li>Diagnostic improvements bucket?
    <ul>
      <li>Emitting fewer include stacks</li>
      <li>Significantly better recovery when encountering misspelled type names
      in a declaration context. r130082</li>
    </ul>
  </li>
  <li>C++ -- supported in the static analyzer: methods, new, constructors,
  destructors, etc.</li>
  <li>Improved AST support for partially constructed nodes and incomplete
  information for LLDB and other clients which dynamically build AST nodes.</li>
  <li>Largely complete MSVC-compatible parsing mode -- fpichet</li>
  <li>C1X -- static asserts and generic selections</li>
  <li>C++11 -- alias declarations -- zygoloid</li>
  <li>C++11 -- range-based-for loops -- zygoloid</li>
  <li>C++11 -- nullptr -- zygoloid</li>
  <li>C++11 -- delegating ctors -- zygoloid/scshunt<li>
  <li>Memory reduction -- initializers, macro expansions, source locations,
  etc.</li>
  <li>Full set of type traits, sufficient to support C++11 standard libraries;
  also expression traits.</li>
  <li>CFI-based debug info -- nlewycky/espindola details</li>
</ul>

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

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

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

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

<!-- ======================================================================= -->
<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>

</body>
</html>
