diff --git a/docs/ReleaseNotes.html b/docs/ReleaseNotes.html
index bd717b8..45c06b6 100644
--- a/docs/ReleaseNotes.html
+++ b/docs/ReleaseNotes.html
@@ -2,7 +2,7 @@
           "http://www.w3.org/TR/html4/strict.dtd">
 <html>
 <head>
-<title>Clang 3.0 Release Notes</title>
+<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">
@@ -17,18 +17,18 @@
 
 <div id="content">
 
-<h1>Clang 3.0 Release Notes</h1>
+<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.0?</a>
+  <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="#cxxhanges">C++ Language Changes</a></li>
+      <li><a href="#cxxchanges">C++ Language Changes</a></li>
       <li><a href="#objchanges">Objective-C Language Changes</a></li>
       <li><a href="#apichanges">Internal API Changes</a></li>
     </ul>
@@ -41,20 +41,18 @@
   <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
+<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/2.9/docs/ReleaseNotes.html">LLVM 2.9
+<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.0.  Here we
+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
@@ -72,7 +70,7 @@
 <a href="http://llvm.org/releases/">releases page</a>.</p>
 
 <!-- ======================================================================= -->
-<h2 id="whatsnew">What's New in Clang 3.0?</h2>
+<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.
@@ -84,270 +82,63 @@
 <h3 id="majorfeatures">Major New Features</h3>
 <!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
 
-<h4 id="diagnostics">A multitude of improvements to Clang's diagnostics</h4>
-Clang's diagnostics are constantly being improved to catch more issues, explain
-them more clearly, and provide more accurate source information about them.
-A few improvements since the 2.9 release that have a particularly high impact:
-<ul>
-  <li>Substantially shorter messages due to better recovery, fewer include
-  stacks, and tuning verbose features such as 'a.k.a.' type printing.</li>
-  <li>
-    Able to recover and correct from misspelled type names at the beging of
-    statements. For example, Clang now emits:
-<pre><b>t.c:6:3: <span class="error">error:</span> use of undeclared identifier 'integer'; did you mean 'Integer'?</b>
-  integer *i = 0;
-  <span class="caret">^~~~~~~</span>
-  Integer
-<b>t.c:1:13: note:</b> 'Integer' declared here
-typedef int Integer;
-            <span class="caret">^</span></pre>
-  </li>
-  <li>Expanded typo correction to (among other improvements) look across
-  namespaces and suggest namespace qualifiers in addition to misspellings of the
-  identifier itself.</li>
-  <li>More rich macro expansion backtraces and some (limited) fix-it hints when
-  diagnostics stem from macro arguments.</li>
-  <li>Many new warnings have been added to catch common, bug-prone code
-  patterns.</li>
-  <li>Uninitialized values Clang warning was rewritten to be more accurate,
-  faster, and able to differentiate between the <em>possibility</em> of an
-  uninitialized use and the <em>certainty</em> of an uninitialized use.</li>
-</ul>
-
-<h4 id="libclang">This release saw significant improvements to <code>libclang</code></h4>
-<ul>
-  <li>A broader set of the <code>libclang</code> API is exposed in the Python
-  bindings.</li>
-  <li>Much more of the Clang AST is exposed through <code>libclang</code>'s APIs
-  and cursors.</li>
-  <li>Cursors can now walk more effectively through macros, especially arguments
-  to function-style macros, and resolve to the underlying AST.</li>
-  <li>Improved code completion surrounding macros, macro arguments, and
-  token pasting.</li>
-  <li>Improved code completion for in-class member functions.</li>
-  <li>Crash recovery for <code>libclang</code> clients.</li>
-  <!-- Doug or Ted may want to flesh this out if there are relevant details I'm
-  glossing over... -->
-</ul>
-
-<h4 id="driver">The Clang GCC-compatible command-line driver improved dramatically</h4>
-A great deal of work went into the GCC-compatible driver for the 3.0 release
-making it support more operating systems, emulate GCC behavior more accurately,
-and support a much broader range of Linux distributions out of the box.
-<ul>
-  <li>More accurate support for hardware architecture pre-defined macros (e.g.,
-  __i686__).</li>
-  <li>Robust library and header search paths for the vast majority of x86 and
-  x86-64 Linux distributions.</li>
-  <li>Improved support for newer Darwin platforms.</li>
-  <li>Partial support for <code>--sysroot=...</code> based cross-compiling on
-  Linux (and similar) host systems.</li>
-  <li>Improved support for locating and using libcxx when installed, especially
-  on Darwin.</li>
-  <!-- There are likely more Darwin-specific improvements to mention here? -->
-  <!-- What support was added for FreeBSD? NetBSD? Anything noteworthy? -->
-  <li>Automatic detection of Clang crashes in the driver and preparation of
-  reproduction steps for filing bug reports.</li><!-- Chad, feel free to add
-  more details here. -->
-</ul>
-
-<h4 id="ppcallbacks">Expanded support for instrumenting the preprocessor through
-  callbacks</h4>
-Several enhancements were made to the <code>PPCallbacks</code> interface to
-expand the information available to tools and library users of Clang that wish
-to introspect the preprocessing.
-<ul>
-  <li>The exact text used between the <code>""</code>s or <code>&lt;&gt;</code>s is reported.</li>
-  <li>The header search path used to locate the header is reported.</li>
-  <li>Missing files during including headers reported.</li>
-  <li>The exact source range for expanded macros can be retrieved.</li>
-</ul>
-
-<h4 id="windows">Clang is building and tested regularly on Windows and can
-  compile limited subsets of code on Windows</h4>
-Clang is regularly built and tested on a variety of Windows platforms including
-MinGW 32-bit and 64-bit, Cygwin, and natively with MSVC. In addition, Clang can
-be used as a compiler in a few Windows contexts.
-<ul>
-  <li>Normal compilation supported for the MinGW target platform, in both 32-bit
-  and 64-bit, and the Cygwin target platform.</li>
-  <li>Parsing and AST support for Windows Structured Exception Handling.</li>
-  <li>New -fms-compatibility flag to handle MSVC constructs that could change 
-  the meaning of an otherwise well formed program</li>
-  <li>clang can now parse all the MSVC 2010 standard C++ header files
-  in the nominal case, (still need to specifiy -nobuiltininc for some headers).</li>
-  <li>Improved support for MFC code parsing, (still a work in progress).</li>
-  <li>Add support for function template specialization at class scope (-fms-extensions mode).</li>
-  <li>Add support for Microsoft __if_exists/__if_not_exists statements (-fms-extensions mode).</li>
-</ul>
-
-<h4 id="availability">New availability attribute to detect and warn about API
-usage across OS X and iOS versions</h4>
-Clang now supports an attribute which documents the availability of an API
-across various platforms and releases, allowing interfaces to include
-information about what OS versions support the relevant features. Based on the
-targeted version of a compile, warnings for deprecated and unavailable
-interfaces will automatically be provided by Clang.
-
-<h4 id="threadsafety">Thread Safety annotations and analysis-based warnings</h4>
-A set of annotations were introduced to Clang to describe the various
-thread-safety concerns of a program, and an accompanying set of analysis based
-warnings will diagnose clearly unsafe code patterns. The annotations are
-described in the
-<a href="http://clang.llvm.org/docs/LanguageExtensions.html#threadsafety">extension specification</a>,
-and the warnings currently supported include:
-<ul>
-  <li>Calling functions without the required locks</li>
-  <li>Reading variables without the required locks</li>
-  <li>Writing to variables without an exclusive lock (even if holding a shared
-  lock)</li>
-  <li>Imbalance between locks and unlocks across loop entries and exits</li>
-  <li>Acquiring or releasing locks out of order</li>
-</ul>
-
-<h4 id="incompleteast">Improved support for partially constructed and/or
-incomplete ASTs</h4>
-For users such as LLDB that are dynamically forming C++ ASTs, sometimes it is
-either necessary or useful to form a partial or incomplete AST. Support for
-these use cases have improved through the introduction of "unknown" types and
-other AST constructs designed specifically for use cases without complete
-information about the C++ construct being formed.
-
-<h4 id="opencl">Initial work to support compiling OpenCL C with Clang</h4>
-<p>Clang has some (limited) support for compiling OpenCL C.  The 3.0
-release adds support for the <tt>vec_step</tt> operator, address space
-qualifiers (<tt>__private</tt>, <tt>__global</tt>, <tt>__local</tt> and
-<tt>__constant</tt>), improved vector literal support and code generation
-support for the <a href="http://llvm.org/docs/ReleaseNotes.html#PTX">PTX
-target</a>.</p>
-
-<p>Using the <a href="http://www.pcc.me.uk/~peter/libclc/">libclc library</a>
-to supply OpenCL C built-ins, you can use Clang to compile OpenCL C code
-into PTX and execute it by loading the resulting PTX as a binary blob using
-the nVidia OpenCL library.  It has been tested with several OpenCL programs,
-including some from the nVidia GPU Computing SDK, and the performance is on
-par with the nVidia compiler.</p>
+<h4 id="majorfeature1">Feature 1</h4>
+...
 
 <!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
 <h3 id="cchanges">C Language Changes in Clang</h3>
 <!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
 
-<h4 id="c1xchanges">C1X Feature Support</h4>
+<h4 id="c11changes">C11 Feature Support</h4>
 
-<p>Clang 3.0 adds support for the
-<a href="http://clang.llvm.org/docs/LanguageExtensions.html#c1x">
-<code>_Alignas</code>, <code>_Generic</code>, and <code>_Static_assert</code>
-keywords</a>, drafted for inclusion in the next C standard, which is
-provisionally known as C1X. Use <code>-std=c1x</code> or <code>-std=gnu1x</code>
-to enable support for the new language standard. These features are
+<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.
+
 <!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
 <h3 id="cxxchanges">C++ Language Changes in Clang</h3>
 <!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
 
 <h4 id="cxx11changes">C++11 Feature Support</h4>
-<p>Clang 3.0 adds support for
+<p>Clang 3.1 adds support for
 <a href="http://clang.llvm.org/cxx_status.html#cxx11">more 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. The following are now considered to be of production quality:
+these features. In addition to the features supported by Clang 3.0, the
+following are now considered to be of production quality:
 <ul>
-  <li>Range-based <code>for</code> loops</li>
-  <li>Alias declarations (a new syntax for <code>typedef</code> declarations),
-  including their <code>template</code> forms</li>
-  <li>Specifying default values for class data members within a class
-  definition</li>
-  <li>Constructors delegating to other constructors of the same class</li>
-  <li>The <code>override</code> context-sensitive keyword for virtual member
-  function declarations</li>
-  <li>Explicitly generating default function definitions with
-  <code>= default</code></li>
-  <li>The <code>nullptr</code> keyword, and the corresponding type</li>
-  <li>Raw string literals with arbitary delimiters (for instance,
-  <code>R"delim(str"ing)delim"</code>)</li>
-  <li>Unicode string literals (for instance, <code>U"\u1234"</code>) and the
-  <code>char16_t</code> and <code>char32_t</code> built-in types
-  <li><code>noexcept</code> expressions and the <code>noexcept</code> specifier
-  on function declarations</li>
-  <li><code>alignof</code> expressions and the <code>alignas</code> specifier on
-  variable declarations</li>
-  <li>A full set of <a href="http://clang.llvm.org/docs/LanguageExtensions.html#checking_type_traits">type traits</a>,
-  sufficient to support C++11 standard libraries</li>
+  <li>Generalized constant expressions</li>
+  <!--
+  <li>Lambda expressions</li>
+  <li>Generalized initializers</li>
+  -->
 </ul>
-All warning and language selection flags which previously accepted
-<code>c++0x</code> now accept <code>c++11</code>. The old <code>c++0x</code>
-form remains as an alias.
 
 <!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
 <h3 id="objcchanges">Objective-C Language Changes in Clang</h3>
 <!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
-Clang 3.0 introduces several new Objective-C language features and improvements.
+Clang 3.1 introduces several new Objective-C language features and improvements.
 
-<h4 id="objc_arc">Objective-C Automatic Reference Counting</h4>
-<!-- This is really just a stub for John to flesh out regarding ARC. -->
-ARC provides automated memory management for Objective-C programs that is
-compatible with existing retain/release code.  ARC is carefully built to
-be a reliable programming model that errs on the side of producing a
-compiler error instead of silently producing a runtime memory problem.
-ARC automates Objective-C objects, not malloc data, file descriptors,
-CoreFoundation datatypes or anything else. For more details, see the
-<a href="http://clang.llvm.org/docs/AutomaticReferenceCounting.html">full specification</a>.
-
-<h4 id="objc_instancetype">Objective-C Related Result Types / Instance
-Types</h4>
-Allows declaring new methods which follow the Cocoa conventions for methods
-such as <code>init</code> which always return objects that are an instance of
-the receiving class's type. For more details, see the
-<a href="http://clang.llvm.org/docs/LanguageExtensions.html#objc_instancetype">language extension documentation</a>.
-
-<!--
-This is a stub for David Chisnall to fill out.
-
-<h4 id="objc_gnuruntime">Improved support for the GNU Runtime</h4>
-....
--->
+<h4 id="objcfeature1">Feature 1</h4>
+...
 
 <!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
 <h3 id="apichanges">Internal API Changes</h3>
 <!-- = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = -->
 
-These are major API changes that have happened since the 2.9 release of Clang.
+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="macroexpansion">Switched terminology from "instantiation" to "expansion"
-  for macros</h4>
-A great deal of comments and code changes fell out of this, but also every API
-relating to macros with the word "instantiation" (or some variant thereof) was
-renamed. An incomplete list of the most note-worthy ones is here:
-<ul>
-  <li><code>MacroInstantiation</code> became <code>MacroExpansion</code></li>
-  <li><code>SourceManager::getInstantiationLoc</code> became
-  <code>SourceManager::getExpansionLoc</code></li>
-  <li><code>SourceManager::getInstantiationRange</code> became
-  <code>SourceManager::getExpansionRange</code></li>
-  <li><code>SourceManager::getImmediateInstantiationRange</code> became
-  <code>SourceManager::getImmediateExpansionRange</code></li>
-  <li><code>SourceManager::getDecomposedInstantiationLoc</code> became
-  <code>SourceManager::getDecomposedExpansionLoc</code></li>
-  <li><code>SourceManager::getInstantiationColumnNumber</code> became
-  <code>SourceManager::getExpansionColumnNumber</code></li>
-  <li><code>SourceManager::getInstantiationLineNumber</code> became
-  <code>SourceManager::getExpansionLineNumber</code></li>
-  <!-- TODO: Make this more complete! -->
-</ul>
-
-<h4 id="diagnosticrename">Diagnostic class names were shuffled</h4>
-<ul>
-  <li><code>Diagnostic</code> became <code>DiagnosticEngine</code></li>
-  <li><code>DiagnosticClient</code> became <code>DiagnosticConsumer</code></li>
-  <li><code>DiagnosticInfo</code> became <code>Diagnostic</code></li>
-</ul>
-Subclasses of <code>DiagnosticConsumer</code> were also then renamed to end with
-<code>Consumer</code>.
+<h4 id="api1">API change 1</h4>
+...
 
 <!-- ======================================================================= -->
 <h2 id="knownproblems">Significant Known Problems</h2>
