aboutsummaryrefslogtreecommitdiff
path: root/lib/Parse/ParseExprCXX.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-01-05 02:07:19 +0000
committerChris Lattner <sabre@nondot.org>2009-01-05 02:07:19 +0000
commit357089dea05855e27f80f6f244f9c60fc77cee83 (patch)
tree93bb099d742ca9a57254956e598e53f1f0841354 /lib/Parse/ParseExprCXX.cpp
parent608d1fc9c4db3e3769f03a4f989d7692aefbf073 (diff)
simplify some code.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61668 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Parse/ParseExprCXX.cpp')
-rw-r--r--lib/Parse/ParseExprCXX.cpp41
1 files changed, 18 insertions, 23 deletions
diff --git a/lib/Parse/ParseExprCXX.cpp b/lib/Parse/ParseExprCXX.cpp
index 5e50bf8859..3ff9f4427c 100644
--- a/lib/Parse/ParseExprCXX.cpp
+++ b/lib/Parse/ParseExprCXX.cpp
@@ -45,11 +45,6 @@ bool Parser::MaybeParseCXXScopeSpecifier(CXXScopeSpec &SS,
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 @@ bool Parser::MaybeParseCXXScopeSpecifier(CXXScopeSpec &SS,
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();
-
- // ::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;
- }
+ SourceLocation CCLoc = ConsumeToken();
- // 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: