Fixed FriendDecl source locations.

llvm-svn: 143295
This commit is contained in:
Abramo Bagnara 2011-10-29 20:52:52 +00:00
parent ada22aa0e9
commit 254b63068a
3 changed files with 8 additions and 5 deletions

View File

@ -3611,7 +3611,8 @@ public:
Expr *AssertMessageExpr,
SourceLocation RParenLoc);
FriendDecl *CheckFriendTypeDecl(SourceLocation FriendLoc,
FriendDecl *CheckFriendTypeDecl(SourceLocation Loc,
SourceLocation FriendLoc,
TypeSourceInfo *TSInfo);
Decl *ActOnFriendTypeDecl(Scope *S, const DeclSpec &DS,
MultiTemplateParamsArg TemplateParams);

View File

@ -9646,7 +9646,8 @@ Decl *Sema::ActOnStaticAssertDeclaration(SourceLocation StaticAssertLoc,
/// \brief Perform semantic analysis of the given friend type declaration.
///
/// \returns A friend declaration that.
FriendDecl *Sema::CheckFriendTypeDecl(SourceLocation FriendLoc,
FriendDecl *Sema::CheckFriendTypeDecl(SourceLocation Loc,
SourceLocation FriendLoc,
TypeSourceInfo *TSInfo) {
assert(TSInfo && "NULL TypeSourceInfo for friend type declaration");
@ -9703,7 +9704,7 @@ FriendDecl *Sema::CheckFriendTypeDecl(SourceLocation FriendLoc,
// FIXME: C++0x has some syntactic restrictions on friend type declarations
// in [class.friend]p3 that we do not implement.
return FriendDecl::Create(Context, CurContext, FriendLoc, TSInfo, FriendLoc);
return FriendDecl::Create(Context, CurContext, Loc, TSInfo, FriendLoc);
}
/// Handle a friend tag declaration where the scope specifier was
@ -9900,7 +9901,7 @@ Decl *Sema::ActOnFriendTypeDecl(Scope *S, const DeclSpec &DS,
TSI,
DS.getFriendSpecLoc());
else
D = CheckFriendTypeDecl(DS.getFriendSpecLoc(), TSI);
D = CheckFriendTypeDecl(Loc, DS.getFriendSpecLoc(), TSI);
if (!D)
return 0;

View File

@ -552,7 +552,8 @@ Decl *TemplateDeclInstantiator::VisitFriendDecl(FriendDecl *D) {
if (!InstTy)
return 0;
FriendDecl *FD = SemaRef.CheckFriendTypeDecl(D->getFriendLoc(), InstTy);
FriendDecl *FD = SemaRef.CheckFriendTypeDecl(D->getLocation(),
D->getFriendLoc(), InstTy);
if (!FD)
return 0;