diff options
author | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2008-11-07 15:54:02 +0000 |
---|---|---|
committer | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2008-11-07 15:54:02 +0000 |
commit | 9057a81efaf15c543aab1c5c8488e8a9ed2c0ff4 (patch) | |
tree | f1149628ba9473c6daa3d0dfd1a1aaec913310d3 | |
parent | 12e083c805c0f86be4f8e54b06e75b2c3dc1da64 (diff) |
Assert that Parser::MaybeParseOperatorFunctionId is called when token is kw_operator, and replace ExpectAndConsume for the 'operator' token with a ConsumeToken.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58855 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/clang/Basic/DiagnosticKinds.def | 2 | ||||
-rw-r--r-- | lib/Parse/ParseExprCXX.cpp | 5 |
2 files changed, 2 insertions, 5 deletions
diff --git a/include/clang/Basic/DiagnosticKinds.def b/include/clang/Basic/DiagnosticKinds.def index b091e2062e..64afc4683f 100644 --- a/include/clang/Basic/DiagnosticKinds.def +++ b/include/clang/Basic/DiagnosticKinds.def @@ -1291,8 +1291,6 @@ DIAG(err_ambiguous_derived_to_base_conv, ERROR, "ambiguous conversion from derived class '%0' to base class '%1':%2") // C++ operator overloading -DIAG(err_expected_operator, ERROR, - "expected 'operator' keyword") DIAG(err_operator_overload_needs_class_or_enum, ERROR, "non-member overloaded operator '%0' must have at least one parameter of class or enumeration type (or reference thereof)") DIAG(err_operator_overload_variadic, ERROR, diff --git a/lib/Parse/ParseExprCXX.cpp b/lib/Parse/ParseExprCXX.cpp index fcb229b362..3134ff87b6 100644 --- a/lib/Parse/ParseExprCXX.cpp +++ b/lib/Parse/ParseExprCXX.cpp @@ -308,8 +308,7 @@ void Parser::ParseCXXSimpleTypeSpecifier(DeclSpec &DS) { /// <= >= && || ++ -- , ->* -> /// () [] IdentifierInfo *Parser::MaybeParseOperatorFunctionId() { - if (Tok.isNot(tok::kw_operator)) - return 0; + assert(Tok.is(tok::kw_operator) && "Expected 'operator' keyword"); OverloadedOperatorKind Op = OO_None; switch (NextToken().getKind()) { @@ -361,7 +360,7 @@ IdentifierInfo *Parser::MaybeParseOperatorFunctionId() { if (Op == OO_None) return 0; else { - ExpectAndConsume(tok::kw_operator, diag::err_expected_operator); + ConsumeToken(); // 'operator' ConsumeAnyToken(); // the operator itself return &PP.getIdentifierTable().getOverloadedOperator(Op); } |