aboutsummaryrefslogtreecommitdiff
path: root/lib/Parse/ParseDecl.cpp
diff options
context:
space:
mode:
authorRichard Trieu <rtrieu@google.com>2012-01-18 22:54:52 +0000
committerRichard Trieu <rtrieu@google.com>2012-01-18 22:54:52 +0000
commitd6c7c67313634b317a0d63c32be0511a121bb33d (patch)
tree6ad1b344b9e35abc16feaf2077bb26eb258ef6b6 /lib/Parse/ParseDecl.cpp
parent8e87490124b02ffb8eaa06fab26dfc78625613f5 (diff)
Change the error when a '+=' follows a declaration to suggest a fixit to '=' instead of just suggesting a ';'.
Old error: plusequaldeclare1.cc:3:8: error: expected ';' at end of declaration int x += 6; ^ ; New error: plusequaldeclare1.cc:3:9: error: invalid '+=' at end of declaration; did you mean '='? int x += 6; ^~ = git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148433 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Parse/ParseDecl.cpp')
-rw-r--r--lib/Parse/ParseDecl.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/Parse/ParseDecl.cpp b/lib/Parse/ParseDecl.cpp
index 1c7c45e2bd..0de8c53d90 100644
--- a/lib/Parse/ParseDecl.cpp
+++ b/lib/Parse/ParseDecl.cpp
@@ -1269,8 +1269,12 @@ Decl *Parser::ParseDeclarationAfterDeclaratorAndAttributes(Declarator &D,
D.getDeclSpec().getTypeSpecType() == DeclSpec::TST_auto;
// Parse declarator '=' initializer.
- if (isTokenEqualOrMistypedEqualEqual(
- diag::err_invalid_equalequal_after_declarator)) {
+ // If a '==' or '+=' is found, suggest a fixit to '='.
+ if (Tok.is(tok::equal) ||
+ CreateTokenReplacement(tok::equal, tok::equalequal,
+ diag::err_invalid_equalequal_after_declarator) ||
+ CreateTokenReplacement(tok::equal, tok::plusequal,
+ diag::err_invalid_plusequal_after_declarator)) {
ConsumeToken();
if (Tok.is(tok::kw_delete)) {
if (D.isFunctionDeclarator())