git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61668 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2009-01-05 02:07:19 +00:00
Родитель 608d1fc9c4
Коммит 357089dea0
1 изменённых файлов: 18 добавлений и 23 удалений

Просмотреть файл

@ -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();
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: