Parse the location of the 'namespace' token to ActOnNamespaceAliasDef. No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67961 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/include/clang/Parse/Action.h b/include/clang/Parse/Action.h
index f758d05..8488089 100644
--- a/include/clang/Parse/Action.h
+++ b/include/clang/Parse/Action.h
@@ -848,11 +848,12 @@
/// ActOnNamespaceAliasDef - This is called when a namespace alias definition
/// is parsed.
virtual DeclPtrTy ActOnNamespaceAliasDef(Scope *CurScope,
+ SourceLocation NamespaceLoc,
SourceLocation AliasLoc,
IdentifierInfo *Alias,
const CXXScopeSpec &SS,
- SourceLocation NamespaceLoc,
- IdentifierInfo *NamespaceName) {
+ SourceLocation IdentLoc,
+ IdentifierInfo *Ident) {
return DeclPtrTy();
}
diff --git a/include/clang/Parse/Parser.h b/include/clang/Parse/Parser.h
index f2f3ccf..66058ca 100644
--- a/include/clang/Parse/Parser.h
+++ b/include/clang/Parse/Parser.h
@@ -997,7 +997,8 @@
DeclPtrTy ParseUsingDirective(unsigned Context, SourceLocation UsingLoc);
DeclPtrTy ParseUsingDeclaration(unsigned Context, SourceLocation UsingLoc);
DeclPtrTy ParseStaticAssertDeclaration();
- DeclPtrTy ParseNamespaceAlias(SourceLocation AliasLoc, IdentifierInfo *Alias);
+ DeclPtrTy ParseNamespaceAlias(SourceLocation NamespaceLoc,
+ SourceLocation AliasLoc, IdentifierInfo *Alias);
//===--------------------------------------------------------------------===//
// C++ 9: classes [class] and C structs/unions.
diff --git a/lib/Parse/ParseDeclCXX.cpp b/lib/Parse/ParseDeclCXX.cpp
index 37eb34e..4201e1c 100644
--- a/lib/Parse/ParseDeclCXX.cpp
+++ b/lib/Parse/ParseDeclCXX.cpp
@@ -62,7 +62,7 @@
if (Tok.is(tok::equal))
// FIXME: Verify no attributes were present.
- return ParseNamespaceAlias(IdentLoc, Ident);
+ return ParseNamespaceAlias(NamespaceLoc, IdentLoc, Ident);
if (Tok.is(tok::l_brace)) {
SourceLocation LBrace = ConsumeBrace();
@@ -99,7 +99,8 @@
/// ParseNamespaceAlias - Parse the part after the '=' in a namespace
/// alias definition.
///
-Parser::DeclPtrTy Parser::ParseNamespaceAlias(SourceLocation AliasLoc,
+Parser::DeclPtrTy Parser::ParseNamespaceAlias(SourceLocation NamespaceLoc,
+ SourceLocation AliasLoc,
IdentifierInfo *Alias) {
assert(Tok.is(tok::equal) && "Not equal token");
@@ -117,15 +118,15 @@
}
// Parse identifier.
- IdentifierInfo *NamespaceName = Tok.getIdentifierInfo();
- SourceLocation NamespaceLoc = ConsumeToken();
+ IdentifierInfo *Ident = Tok.getIdentifierInfo();
+ SourceLocation IdentLoc = ConsumeToken();
// Eat the ';'.
ExpectAndConsume(tok::semi, diag::err_expected_semi_after,
"namespace name", tok::semi);
- return Actions.ActOnNamespaceAliasDef(CurScope, AliasLoc, Alias, SS,
- NamespaceLoc, NamespaceName);
+ return Actions.ActOnNamespaceAliasDef(CurScope, NamespaceLoc, AliasLoc, Alias,
+ SS, IdentLoc, Ident);
}
/// ParseLinkage - We know that the current token is a string_literal
diff --git a/lib/Sema/Sema.h b/lib/Sema/Sema.h
index a7c48c8..ab1e9d4 100644
--- a/lib/Sema/Sema.h
+++ b/lib/Sema/Sema.h
@@ -1377,11 +1377,12 @@
void PushUsingDirective(Scope *S, UsingDirectiveDecl *UDir);
virtual DeclPtrTy ActOnNamespaceAliasDef(Scope *CurScope,
+ SourceLocation NamespaceLoc,
SourceLocation AliasLoc,
IdentifierInfo *Alias,
const CXXScopeSpec &SS,
- SourceLocation NamespaceLoc,
- IdentifierInfo *NamespaceName);
+ SourceLocation IdentLoc,
+ IdentifierInfo *Ident);
/// AddCXXDirectInitializerToDecl - This action is called immediately after
/// ActOnDeclarator, when a C++ direct initializer is present.
diff --git a/lib/Sema/SemaDeclCXX.cpp b/lib/Sema/SemaDeclCXX.cpp
index 27d42dd..c9a2363 100644
--- a/lib/Sema/SemaDeclCXX.cpp
+++ b/lib/Sema/SemaDeclCXX.cpp
@@ -1677,11 +1677,12 @@
}
Sema::DeclPtrTy Sema::ActOnNamespaceAliasDef(Scope *S,
+ SourceLocation NamespaceLoc,
SourceLocation AliasLoc,
IdentifierInfo *Alias,
const CXXScopeSpec &SS,
- SourceLocation NamespaceLoc,
- IdentifierInfo *NamespaceName) {
+ SourceLocation IdentLoc,
+ IdentifierInfo *Ident) {
// Check if we have a previous declaration with the same name.
if (NamedDecl *PrevDecl = LookupName(S, Alias, LookupOrdinaryName)) {
@@ -1695,10 +1696,9 @@
}
// Lookup the namespace name.
- LookupResult R = LookupParsedName(S, &SS, NamespaceName,
- LookupNamespaceName, false);
+ LookupResult R = LookupParsedName(S, &SS, Ident, LookupNamespaceName, false);
if (R.isAmbiguous()) {
- DiagnoseAmbiguousLookup(R, NamespaceName, NamespaceLoc);
+ DiagnoseAmbiguousLookup(R, Ident, IdentLoc);
return DeclPtrTy();
}