From: Chris Lattner Date: Mon, 5 Jan 2009 02:07:19 +0000 (+0000) Subject: simplify some code. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=357089dea05855e27f80f6f244f9c60fc77cee83;p=clang 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 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: