summaryrefslogtreecommitdiffstats
path: root/docs/ReleaseNotes.html
diff options
context:
space:
mode:
authorChandler Carruth <chandlerc@gmail.com>2011-11-28 22:34:59 +0000
committerChandler Carruth <chandlerc@gmail.com>2011-11-28 22:34:59 +0000
commit58f2cbc083e1b564a3c393c0ad9006b2e0c45e67 (patch)
treeaf65ee832a01442f7d09163c3a82817dee758f7b /docs/ReleaseNotes.html
parent7a31d7b9e46db6c067567231923574b96c012462 (diff)
Expand and clean up the diagnostics section.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145298 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'docs/ReleaseNotes.html')
-rw-r--r--docs/ReleaseNotes.html36
1 files changed, 25 insertions, 11 deletions
diff --git a/docs/ReleaseNotes.html b/docs/ReleaseNotes.html
index 0b203978a0..62793b2fed 100644
--- a/docs/ReleaseNotes.html
+++ b/docs/ReleaseNotes.html
@@ -104,17 +104,6 @@ prose in a section of its own. When doing that, delete the notes.</p>
compiler crashes -- Chad</li>
<li>OS Availability attribute -- r128127</li>
<li>GNU ObjectiveC Runtime support -- David Chisnall</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>
- <li>Expanded typo correction, most especially namespace-aware typo
- correction in C++</li>
- <li>Significantly more rich diagnostics w.r.t. macro expansion backtraces,
- especially when macro arguments are involved.</li>
- </ul>
- </li>
<li>libclang improvements bucket
<ul>
<li>Better Python Bindings</li>
@@ -145,6 +134,31 @@ prose in a section of its own. When doing that, delete the notes.</p>
deserializing the AST and the preprocessor -- argiris</li>
</ul>
+<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 begging of statements. For example, Clang now emits:
+ <code>t.c:6:3: error: use of undeclared identifier 'integer'; did you mean
+'Integer'?
+ integer *i = 0;
+ ^~~~~~~
+ Integer
+t.c:1:13: note: 'Integer' declared here
+typedef int Integer;
+ ^</code>
+ </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>
+</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,