summaryrefslogtreecommitdiffstats
path: root/clang
diff options
context:
space:
mode:
authorNick Lewycky <nicholas@mxc.ca>2010-10-30 06:48:20 +0000
committerNick Lewycky <nicholas@mxc.ca>2010-10-30 06:48:20 +0000
commitb9b392735655af7b09c669ee480a222d806af577 (patch)
tree1a7de683fffb60285ab8698b21f62e3348c60458 /clang
parent5c0b40528d46ca9707914171660563dcd55293ee (diff)
downloadbcm5719-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.cpp2
-rw-r--r--clang/test/SemaTemplate/instantiate-member-template.cpp12
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}}
+ }
+}
OpenPOWER on IntegriCloud