Fix decltype crash-on-invalid, if we don't find a matching ')' for an ill-formed

decltype expression.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151515 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Richard Smith 2012-02-27 05:24:00 +00:00
Родитель dbe01bb024
Коммит d8e4daca4a
2 изменённых файлов: 4 добавлений и 4 удалений

Просмотреть файл

@ -674,9 +674,9 @@ SourceLocation Parser::ParseDecltypeSpecifier(DeclSpec &DS) {
0, /*IsDecltype=*/true);
Result = ParseExpression();
if (Result.isInvalid()) {
SkipUntil(tok::r_paren, true, true);
SkipUntil(tok::r_paren);
DS.SetTypeSpecError();
return Tok.is(tok::eof) ? Tok.getLocation() : ConsumeParen();
return StartLoc;
}
// Match the ')'

Просмотреть файл

@ -1,6 +1,6 @@
// RUN: not %clang_cc1 -fsyntax-only %s
// RUN: not %clang_cc1 -fsyntax-only -std=c++11 %s
// PR7481
decltype(;
struct{
a
}