summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>2008-11-07 15:54:02 +0000
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>2008-11-07 15:54:02 +0000
commit56fa31bc8796226fd0e8829951d9e3daa6c8def6 (patch)
treeb0aedca9ba8537f696fbb12fc88fbac17fcb08bf
parent450c75a15f37d22bf2f90cafe34ed5c463b10579 (diff)
downloadbcm5719-llvm-56fa31bc8796226fd0e8829951d9e3daa6c8def6.tar.gz
bcm5719-llvm-56fa31bc8796226fd0e8829951d9e3daa6c8def6.zip
Assert that Parser::MaybeParseOperatorFunctionId is called when token is kw_operator, and replace ExpectAndConsume for the 'operator' token with a ConsumeToken.
llvm-svn: 58855
-rw-r--r--clang/include/clang/Basic/DiagnosticKinds.def2
-rw-r--r--clang/lib/Parse/ParseExprCXX.cpp5
2 files changed, 2 insertions, 5 deletions
diff --git a/clang/include/clang/Basic/DiagnosticKinds.def b/clang/include/clang/Basic/DiagnosticKinds.def
index b091e2062e3..64afc4683f6 100644
--- a/clang/include/clang/Basic/DiagnosticKinds.def
+++ b/clang/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/clang/lib/Parse/ParseExprCXX.cpp b/clang/lib/Parse/ParseExprCXX.cpp
index fcb229b3621..3134ff87b60 100644
--- a/clang/lib/Parse/ParseExprCXX.cpp
+++ b/clang/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);
}
OpenPOWER on IntegriCloud