Richard Smith
698875aec6
Fix new check for missing semicolon after struct definition to deal with the
...
case where the type in the following declaration is specified as a template-id,
and refactor for clarity.
llvm-svn: 195280
2013-11-20 23:40:57 +00:00
Richard Smith
404dfb46a9
PR9547: If we're parsing a simple-declaration that contains a tag definition,
...
and we see an ill-formed declarator that would probably be well-formed if the
tag definition were just missing a semicolon, use that as the diagnostic
instead of producing some other mysterious error.
llvm-svn: 195163
2013-11-19 22:47:36 +00:00
Richard Smith
2ac43ad8db
PR17949: Fix crash if someone puts a namespace inside a class template.
...
llvm-svn: 194872
2013-11-15 23:00:02 +00:00
Richard Smith
da35e963bc
Try to recover a bit better if a close brace is missing from the end of a class
...
definition. If we see something that looks like a namespace definition inside a
class, that strongly indicates that a close brace was missing somewhere.
llvm-svn: 194319
2013-11-09 04:52:51 +00:00
Richard Smith
f9b1510576
Refactor all diagnosing of TypoCorrections through a common function, in
...
preparation for teaching this function how to diagnose a correction that
includes importing a module.
llvm-svn: 188602
2013-08-17 00:46:16 +00:00
Richard Smith
3e284699d9
In C++, if we hit an error in the class-head, don't try to parse the class body.
...
Our error recovery path may have made the class anonymous, and that has a pretty
disastrous impact on any attempt to parse a class body containing constructors.
llvm-svn: 169374
2012-12-05 11:34:06 +00:00
David Tweed
d8bb236e18
Correct test inovocations to use %clang_cc1 rather than direct invocation (so that it can have additional options set when trying to debug issues causing regressions).
...
llvm-svn: 166681
2012-10-25 13:56:30 +00:00
Richard Smith
d16fe12e77
'constexpr' and 'friend' are both declaration specifiers. Teach the parser this, for better error recovery.
...
llvm-svn: 166645
2012-10-25 00:00:53 +00:00
Kaelyn Uhrain
b5b17fe9fc
Recover when correcting an unknown type name to a keyword like "struct".
...
llvm-svn: 158573
2012-06-15 23:45:58 +00:00
Richard Smith
b8caac8e32
Part of PR10101: after a parse error in a declaration, try harder to find the
...
right place to pick up parsing. In C++, this had a tendency to skip everything
declared within headers if the TU starts with garbage.
llvm-svn: 154530
2012-04-11 20:59:20 +00:00