diff options
author | Douglas Gregor <dgregor@apple.com> | 2011-03-01 20:11:18 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2011-03-01 20:11:18 +0000 |
commit | 94fdffa4a572fc14ac296f5f1aae9db3734c72f1 (patch) | |
tree | 9d816e05f756c8d0f9f37a9a3eae7a06a873dd3f /lib/Sema/SemaTemplate.cpp | |
parent | 438d7f05d34abfdf6a8a8954a957b97275162070 (diff) |
Push nested-name-specifier source-location information into dependent
template specialization types. There are still a few rough edges to
clean up with some of the parser actions dropping
nested-name-specifiers too early.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126776 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Sema/SemaTemplate.cpp')
-rw-r--r-- | lib/Sema/SemaTemplate.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/lib/Sema/SemaTemplate.cpp b/lib/Sema/SemaTemplate.cpp index a710f94436..16edbf76eb 100644 --- a/lib/Sema/SemaTemplate.cpp +++ b/lib/Sema/SemaTemplate.cpp @@ -1767,7 +1767,11 @@ Sema::ActOnTemplateIdType(TemplateTy TemplateD, SourceLocation TemplateLoc, SpecTL.setNameLoc(TemplateLoc); SpecTL.setLAngleLoc(LAngleLoc); SpecTL.setRAngleLoc(RAngleLoc); - SpecTL.setQualifierRange(TemplateLoc); // FIXME: nested-name-specifier loc + + // FIXME: Poor nested-name-specifier source-location information. + CXXScopeSpec SS; + SS.MakeTrivial(Context, DTN->getQualifier(), TemplateLoc); + SpecTL.setQualifierLoc(SS.getWithLocInContext(Context)); for (unsigned I = 0, N = SpecTL.getNumArgs(); I != N; ++I) SpecTL.setArgLocInfo(I, TemplateArgs[I].getLocInfo()); return CreateParsedType(T, TLB.getTypeSourceInfo(Context, T)); @@ -5967,12 +5971,10 @@ Sema::ActOnTypenameType(Scope *S, SourceLocation TypenameLoc, SpecTL.setLAngleLoc(LAngleLoc); SpecTL.setRAngleLoc(RAngleLoc); SpecTL.setKeywordLoc(TypenameLoc); + SpecTL.setQualifierLoc(SS.getWithLocInContext(Context)); SpecTL.setNameLoc(TemplateNameLoc); for (unsigned I = 0, N = TemplateArgs.size(); I != N; ++I) SpecTL.setArgLocInfo(I, TemplateArgs[I].getLocInfo()); - - // FIXME: Nested-name-specifier source locations. - SpecTL.setQualifierRange(SS.getRange()); return CreateParsedType(T, Builder.getTypeSourceInfo(Context, T)); } |