simplify some code.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61668 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Parse/ParseExprCXX.cpp b/lib/Parse/ParseExprCXX.cpp
index 5e50bf8..3ff9f44 100644
--- a/lib/Parse/ParseExprCXX.cpp
+++ b/lib/Parse/ParseExprCXX.cpp
@@ -45,11 +45,6 @@
ConsumeToken();
return true;
}
-
- if (GlobalQualifier == 0 &&
- Tok.isNot(tok::coloncolon) &&
- (Tok.isNot(tok::identifier) || NextToken().isNot(tok::coloncolon)))
- return false;
if (GlobalQualifier) {
// Pre-parsed '::'.
@@ -60,27 +55,27 @@
assert(Tok.isNot(tok::kw_new) && Tok.isNot(tok::kw_delete) &&
"Never called with preparsed :: qualifier and with new/delete");
- } else {
- SS.setBeginLoc(Tok.getLocation());
-
+ } else if (Tok.is(tok::coloncolon)) {
// '::' - Global scope qualifier.
- if (Tok.is(tok::coloncolon)) {
- SourceLocation CCLoc = ConsumeToken();
+ SourceLocation CCLoc = ConsumeToken();
- // ::new and ::delete aren't nested-name-specifiers, and
- // MaybeParseCXXScopeSpecifier is never called in a context where one
- // could exist. This means that if we see it, we have a syntax error.
- if (Tok.is(tok::kw_new) || Tok.is(tok::kw_delete)) {
- Diag(Tok, diag::err_invalid_qualified_new_delete)
- << Tok.is(tok::kw_delete);
- SS.setBeginLoc(SourceLocation());
- return false;
- }
-
- // Global scope.
- SS.setScopeRep(Actions.ActOnCXXGlobalScopeSpecifier(CurScope, CCLoc));
- SS.setEndLoc(CCLoc);
+ // ::new and ::delete aren't nested-name-specifiers, and
+ // MaybeParseCXXScopeSpecifier is never called in a context where one
+ // could exist. This means that if we see it, we have a syntax error.
+ if (Tok.is(tok::kw_new) || Tok.is(tok::kw_delete)) {
+ Diag(Tok, diag::err_invalid_qualified_new_delete)
+ << Tok.is(tok::kw_delete);
+ return false;
}
+
+ SS.setBeginLoc(CCLoc);
+ SS.setScopeRep(Actions.ActOnCXXGlobalScopeSpecifier(CurScope, CCLoc));
+ SS.setEndLoc(CCLoc);
+ } else if (Tok.is(tok::identifier) && NextToken().is(tok::coloncolon)) {
+ SS.setBeginLoc(Tok.getLocation());
+ } else {
+ // Not a CXXScopeSpecifier.
+ return false;
}
// nested-name-specifier: