diff options
author | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2010-10-08 02:39:23 +0000 |
---|---|---|
committer | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2010-10-08 02:39:23 +0000 |
commit | b5c7c5139281ea8435afd7385527b1801ef21c41 (patch) | |
tree | 3dddbcc7aea6d909f43424d8ad328aed3afe7753 /clang/lib/Parse/ParseExprCXX.cpp | |
parent | d4e9c3b43a0c446378e1c5175e800a16a3e7c1f5 (diff) | |
download | bcm5719-llvm-b5c7c5139281ea8435afd7385527b1801ef21c41.tar.gz bcm5719-llvm-b5c7c5139281ea8435afd7385527b1801ef21c41.zip |
When we encounter a '==' in a context expecting a '=', assume the user made a typo:
t.c:1:7: error: invalid '==' at end of declaration; did you mean '='?
int x == 0;
^~
=
Implements rdar://8488464.
llvm-svn: 116035
Diffstat (limited to 'clang/lib/Parse/ParseExprCXX.cpp')
-rw-r--r-- | clang/lib/Parse/ParseExprCXX.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/clang/lib/Parse/ParseExprCXX.cpp b/clang/lib/Parse/ParseExprCXX.cpp index e8b921b8f7f..77cb4492f67 100644 --- a/clang/lib/Parse/ParseExprCXX.cpp +++ b/clang/lib/Parse/ParseExprCXX.cpp @@ -821,9 +821,10 @@ bool Parser::ParseCXXCondition(ExprResult &ExprOut, DeclaratorInfo); DeclOut = Dcl.get(); ExprOut = ExprError(); - + // '=' assignment-expression - if (Tok.is(tok::equal)) { + if (isTokenEqualOrMistypedEqualEqual( + diag::err_invalid_equalequal_after_declarator)) { SourceLocation EqualLoc = ConsumeToken(); ExprResult AssignExpr(ParseAssignmentExpression()); if (!AssignExpr.isInvalid()) |