diff options
author | John McCall <rjmccall@apple.com> | 2009-10-21 00:40:46 +0000 |
---|---|---|
committer | John McCall <rjmccall@apple.com> | 2009-10-21 00:40:46 +0000 |
commit | 550e0c2f0fd655d6946a2e2b6dbbbf2c473a513c (patch) | |
tree | ad010ec8b6d960b33dddffe78e7d01b7dc8a6e05 /clang/lib/Sema/SemaTemplate.cpp | |
parent | 26fe7e0b8ad4240bc51127aa9126afdf13aee4ca (diff) | |
download | bcm5719-llvm-550e0c2f0fd655d6946a2e2b6dbbbf2c473a513c.tar.gz bcm5719-llvm-550e0c2f0fd655d6946a2e2b6dbbbf2c473a513c.zip |
Rewrite TreeTransform to transform types as DeclaratorInfos rather than as bare
QualTypes. Don't actually exploit this yet.
llvm-svn: 84716
Diffstat (limited to 'clang/lib/Sema/SemaTemplate.cpp')
-rw-r--r-- | clang/lib/Sema/SemaTemplate.cpp | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/clang/lib/Sema/SemaTemplate.cpp b/clang/lib/Sema/SemaTemplate.cpp index 13014936a3f..da7545c02de 100644 --- a/clang/lib/Sema/SemaTemplate.cpp +++ b/clang/lib/Sema/SemaTemplate.cpp @@ -4265,12 +4265,27 @@ namespace { /// \brief Transforms a typename type by determining whether the type now /// refers to a member of the current instantiation, and then /// type-checking and building a QualifiedNameType (when possible). - QualType TransformTypenameType(const TypenameType *T); + QualType TransformTypenameType(TypeLocBuilder &TLB, TypenameTypeLoc TL); + QualType TransformTypenameType(TypenameType *T); }; } QualType -CurrentInstantiationRebuilder::TransformTypenameType(const TypenameType *T) { +CurrentInstantiationRebuilder::TransformTypenameType(TypeLocBuilder &TLB, + TypenameTypeLoc TL) { + QualType Result = TransformTypenameType(TL.getTypePtr()); + if (Result.isNull()) + return QualType(); + + TypenameTypeLoc NewTL = TLB.push<TypenameTypeLoc>(Result); + NewTL.setNameLoc(TL.getNameLoc()); + + return Result; +} + +QualType +CurrentInstantiationRebuilder::TransformTypenameType(TypenameType *T) { + NestedNameSpecifier *NNS = TransformNestedNameSpecifier(T->getQualifier(), /*FIXME:*/SourceRange(getBaseLocation())); |