diff options
author | Douglas Gregor <dgregor@apple.com> | 2010-12-24 00:35:52 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2010-12-24 00:35:52 +0000 |
commit | b4d271ef46bde4815c3ca3363779645ce3513811 (patch) | |
tree | 38ef34faf1e2a8aa1c8940347fe40e01b503a7cc /clang/lib/Sema/SemaTemplateDeduction.cpp | |
parent | 0da4a99ad36c11ee18d36c353eb4256945dfdf7b (diff) | |
download | bcm5719-llvm-b4d271ef46bde4815c3ca3363779645ce3513811.tar.gz bcm5719-llvm-b4d271ef46bde4815c3ca3363779645ce3513811.zip |
Fix a thinko in a helper routine for template argument deduction that
caused an assertion when dealing with non-type template parameter
packs. Add some tests for deduction and instantiation of non-type
template parameter packs.
llvm-svn: 122534
Diffstat (limited to 'clang/lib/Sema/SemaTemplateDeduction.cpp')
-rw-r--r-- | clang/lib/Sema/SemaTemplateDeduction.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/clang/lib/Sema/SemaTemplateDeduction.cpp b/clang/lib/Sema/SemaTemplateDeduction.cpp index 90894f22a36..4a667cdf57c 100644 --- a/clang/lib/Sema/SemaTemplateDeduction.cpp +++ b/clang/lib/Sema/SemaTemplateDeduction.cpp @@ -1037,14 +1037,14 @@ getDepthAndIndex(UnexpandedParameterPack UPP) { = UPP.first.dyn_cast<const TemplateTypeParmType *>()) return std::make_pair(TTP->getDepth(), TTP->getIndex()); - if (TemplateTypeParmDecl *TTP = UPP.first.dyn_cast<TemplateTypeParmDecl *>()) + NamedDecl *ND = UPP.first.get<NamedDecl *>(); + if (TemplateTypeParmDecl *TTP = dyn_cast<TemplateTypeParmDecl>(ND)) return std::make_pair(TTP->getDepth(), TTP->getIndex()); - if (NonTypeTemplateParmDecl *NTTP - = UPP.first.dyn_cast<NonTypeTemplateParmDecl *>()) + if (NonTypeTemplateParmDecl *NTTP = dyn_cast<NonTypeTemplateParmDecl>(ND)) return std::make_pair(NTTP->getDepth(), NTTP->getIndex()); - TemplateTemplateParmDecl *TTP = UPP.first.get<TemplateTemplateParmDecl *>(); + TemplateTemplateParmDecl *TTP = cast<TemplateTemplateParmDecl>(ND); return std::make_pair(TTP->getDepth(), TTP->getIndex()); } |