diff options
author | Alexis Hunt <alercah@gmail.com> | 2011-05-24 22:41:36 +0000 |
---|---|---|
committer | Alexis Hunt <alercah@gmail.com> | 2011-05-24 22:41:36 +0000 |
commit | e852b100e26c818788708a2379d047e157ea316f (patch) | |
tree | 4df08da63c06554866280991bc227909575cce98 /clang/lib/Sema/SemaTemplateDeduction.cpp | |
parent | 93e7b3a8bdbe1a9edb1c3d6524ed858377b35e62 (diff) | |
download | bcm5719-llvm-e852b100e26c818788708a2379d047e157ea316f.tar.gz bcm5719-llvm-e852b100e26c818788708a2379d047e157ea316f.zip |
Implement a new type node, UnaryTransformType, designed to represent a
type that turns one type into another. This is used as the basis to
implement __underlying_type properly - with TypeSourceInfo and proper
behavior in the face of templates.
llvm-svn: 132017
Diffstat (limited to 'clang/lib/Sema/SemaTemplateDeduction.cpp')
-rw-r--r-- | clang/lib/Sema/SemaTemplateDeduction.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaTemplateDeduction.cpp b/clang/lib/Sema/SemaTemplateDeduction.cpp index f2ec09b132c..c4627eb1e3a 100644 --- a/clang/lib/Sema/SemaTemplateDeduction.cpp +++ b/clang/lib/Sema/SemaTemplateDeduction.cpp @@ -3886,6 +3886,13 @@ MarkUsedTemplateParameters(Sema &SemaRef, QualType T, OnlyDeduced, Depth, Used); break; + case Type::UnaryTransform: + if (!OnlyDeduced) + MarkUsedTemplateParameters(SemaRef, + cast<UnaryTransformType>(T)->getUnderlyingType(), + OnlyDeduced, Depth, Used); + break; + case Type::PackExpansion: MarkUsedTemplateParameters(SemaRef, cast<PackExpansionType>(T)->getPattern(), |