diff options
| author | Nick Lewycky <nicholas@mxc.ca> | 2010-10-30 06:48:20 +0000 |
|---|---|---|
| committer | Nick Lewycky <nicholas@mxc.ca> | 2010-10-30 06:48:20 +0000 |
| commit | b9b392735655af7b09c669ee480a222d806af577 (patch) | |
| tree | 1a7de683fffb60285ab8698b21f62e3348c60458 /clang | |
| parent | 5c0b40528d46ca9707914171660563dcd55293ee (diff) | |
| download | bcm5719-llvm-b9b392735655af7b09c669ee480a222d806af577.tar.gz bcm5719-llvm-b9b392735655af7b09c669ee480a222d806af577.zip | |
Preserve the template type parameter name when instantiating a templace.
Fixes PR8489.
llvm-svn: 117776
Diffstat (limited to 'clang')
| -rw-r--r-- | clang/lib/Sema/SemaTemplateInstantiateDecl.cpp | 2 | ||||
| -rw-r--r-- | clang/test/SemaTemplate/instantiate-member-template.cpp | 12 |
2 files changed, 13 insertions, 1 deletions
diff --git a/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp b/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp index 1dbdefca9fc..6e352e71ef6 100644 --- a/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp +++ b/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp @@ -1508,7 +1508,7 @@ Decl *TemplateDeclInstantiator::VisitTemplateTypeParmDecl( TemplateTypeParmDecl *Inst = TemplateTypeParmDecl::Create(SemaRef.Context, Owner, D->getLocation(), TTPT->getDepth() - TemplateArgs.getNumLevels(), - TTPT->getIndex(),TTPT->getName(), + TTPT->getIndex(), D->getIdentifier(), D->wasDeclaredWithTypename(), D->isParameterPack()); diff --git a/clang/test/SemaTemplate/instantiate-member-template.cpp b/clang/test/SemaTemplate/instantiate-member-template.cpp index 8f4063bc71c..e2f72756189 100644 --- a/clang/test/SemaTemplate/instantiate-member-template.cpp +++ b/clang/test/SemaTemplate/instantiate-member-template.cpp @@ -203,3 +203,15 @@ namespace PR7669 { X<int>::Y<int>::Z<0,int>(); } } + +namespace PR8489 { + template <typename CT> + class C { + template<typename FT> + void F() {} // expected-note{{FT}} + }; + void f() { + C<int> c; + c.F(); // expected-error{{no matching member function}} + } +} |

