diff options
author | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2009-08-19 01:28:28 +0000 |
---|---|---|
committer | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2009-08-19 01:28:28 +0000 |
commit | c7148c974d79a6a6b449add3d757bac60d34d934 (patch) | |
tree | a4045dadee6a523fabff1e516fb3a1f866bdd585 /clang/lib/Sema/SemaTemplate.cpp | |
parent | e918926d314f0c1dc2ee8c557ea7a8d4b4193220 (diff) | |
download | bcm5719-llvm-c7148c974d79a6a6b449add3d757bac60d34d934.tar.gz bcm5719-llvm-c7148c974d79a6a6b449add3d757bac60d34d934.zip |
Use Sema's LocInfoType to pass and preserve type source info through the Parser.
llvm-svn: 79395
Diffstat (limited to 'clang/lib/Sema/SemaTemplate.cpp')
-rw-r--r-- | clang/lib/Sema/SemaTemplate.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/clang/lib/Sema/SemaTemplate.cpp b/clang/lib/Sema/SemaTemplate.cpp index c9281c979a7..7b29c9432a9 100644 --- a/clang/lib/Sema/SemaTemplate.cpp +++ b/clang/lib/Sema/SemaTemplate.cpp @@ -215,7 +215,8 @@ void Sema::ActOnTypeParameterDefault(DeclPtrTy TypeParam, TypeTy *DefaultT) { TemplateTypeParmDecl *Parm = cast<TemplateTypeParmDecl>(TypeParam.getAs<Decl>()); - QualType Default = QualType::getFromOpaquePtr(DefaultT); + // FIXME: Preserve type source info. + QualType Default = GetTypeFromParser(DefaultT); // C++0x [temp.param]p9: // A default template-argument may be specified for any kind of @@ -921,7 +922,8 @@ translateTemplateArguments(ASTTemplateArgsPtr &TemplateArgsIn, for (unsigned Arg = 0, Last = TemplateArgsIn.size(); Arg != Last; ++Arg) { TemplateArgs.push_back( ArgIsType[Arg]? TemplateArgument(TemplateArgLocs[Arg], - QualType::getFromOpaquePtr(Args[Arg])) + //FIXME: Preserve type source info. + Sema::GetTypeFromParser(Args[Arg])) : TemplateArgument(reinterpret_cast<Expr *>(Args[Arg]))); } } @@ -1006,6 +1008,7 @@ QualType Sema::CheckTemplateIdType(TemplateName Name, // Build the fully-sugared type for this class template // specialization, which refers back to the class template // specialization we created or found. + //FIXME: Preserve type source info. return Context.getTemplateSpecializationType(Name, TemplateArgs, NumTemplateArgs, CanonType); } @@ -2969,7 +2972,7 @@ Sema::ActOnTypenameType(SourceLocation TypenameLoc, const CXXScopeSpec &SS, Sema::TypeResult Sema::ActOnTypenameType(SourceLocation TypenameLoc, const CXXScopeSpec &SS, SourceLocation TemplateLoc, TypeTy *Ty) { - QualType T = QualType::getFromOpaquePtr(Ty); + QualType T = GetTypeFromParser(Ty); NestedNameSpecifier *NNS = static_cast<NestedNameSpecifier *>(SS.getScopeRep()); const TemplateSpecializationType *TemplateId |