summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
authorFariborz Jahanian <fjahanian@apple.com>2011-04-19 21:42:37 +0000
committerFariborz Jahanian <fjahanian@apple.com>2011-04-19 21:42:37 +0000
commit2b059998f7a6ce18dadd8d11b396825d79cdd27a (patch)
treec86ad65bbaaf725363d57cdd03de77da063ab51d /clang/lib
parentecf1356057de02d8ce1911fb78fd17d968b47f38 (diff)
downloadbcm5719-llvm-2b059998f7a6ce18dadd8d11b396825d79cdd27a.tar.gz
bcm5719-llvm-2b059998f7a6ce18dadd8d11b396825d79cdd27a.zip
Avoid superfluous warning after an error is detcted and reported.
// rdar://9132143 llvm-svn: 129822
Diffstat (limited to 'clang/lib')
-rw-r--r--clang/lib/Parse/ParseDecl.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/clang/lib/Parse/ParseDecl.cpp b/clang/lib/Parse/ParseDecl.cpp
index ee76cc73a52..702f8c7cfb1 100644
--- a/clang/lib/Parse/ParseDecl.cpp
+++ b/clang/lib/Parse/ParseDecl.cpp
@@ -1735,6 +1735,8 @@ void Parser::ParseDeclarationSpecifiers(DeclSpec &DS,
DS.getStorageClassSpec() == DeclSpec::SCS_typedef) {
PrevSpec = ""; // Not used by the diagnostic.
DiagID = diag::err_bool_redeclaration;
+ // For better error recovery.
+ Tok.setKind(tok::identifier);
isInvalid = true;
} else {
isInvalid = DS.SetTypeSpecType(DeclSpec::TST_bool, Loc, PrevSpec,
@@ -1856,7 +1858,8 @@ void Parser::ParseDeclarationSpecifiers(DeclSpec &DS,
}
DS.SetRangeEnd(Tok.getLocation());
- ConsumeToken();
+ if (DiagID != diag::err_bool_redeclaration)
+ ConsumeToken();
}
}
OpenPOWER on IntegriCloud