llvm-project/clang/test/CXX/basic
Richard Smith 8d06f42448 Improve 0-argument -Wvexing-parse diagnostic by adding notes with fix-its:
- If the declarator is at the start of a line, and the previous line contained
   another declarator and ended with a comma, then that comma was probably a
   typo for a semicolon:

   int n = 0, m = 1, l = 2, // k = 5;
   myImportantFunctionCall(); // oops!

 - If removing the parentheses would correctly initialize the object, then
   produce a note suggesting that fix.

 - Otherwise, if there is a simple initializer we can suggest which performs
   value-initialization, then provide a note suggesting a correction to that
   initializer.

Sema::Declarator now tracks the location of the comma prior to the declarator in
the declaration, if there is one, to facilitate providing the note. The code to
determine an appropriate initializer from the -Wuninitialized warning has been
factored out to allow use in both that and -Wvexing-parse.

llvm-svn: 148072
2012-01-12 23:53:29 +00:00
..
basic.def.odr Check for redefinitions in MergeVarDecl. This finds redefinitions of globals without an initializer in C++ and thus fixes PR5451. 2010-02-02 18:35:11 +00:00
basic.link Improve 0-argument -Wvexing-parse diagnostic by adding notes with fix-its: 2012-01-12 23:53:29 +00:00
basic.lookup Modify how the -verify flag works. Currently, the verification string and 2011-12-15 00:38:15 +00:00
basic.scope Update all tests other than Driver/std.cpp to use -std=c++11 rather than 2011-10-13 22:29:44 +00:00
basic.start/basic.start.main Modify how the -verify flag works. Currently, the verification string and 2011-12-15 00:38:15 +00:00
basic.stc/basic.stc.dynamic Semantic checking for exception specifications should be triggered by 2011-03-02 02:04:40 +00:00
basic.types constexpr handling improvements. Produce detailed diagnostics when a 'constexpr' 2011-12-19 06:19:21 +00:00