From: Anders Carlsson Date: Sun, 27 Sep 2009 19:53:49 +0000 (+0000) Subject: Use mangleTemplatePrefix when we know that we're mangling a nested template name. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e45117b945a0d8c1fdcc4cd8ee4500f5ee8742be;p=clang Use mangleTemplatePrefix when we know that we're mangling a nested template name. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82912 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/CodeGen/Mangle.cpp b/lib/CodeGen/Mangle.cpp index 660a36bce0..ab157e56bf 100644 --- a/lib/CodeGen/Mangle.cpp +++ b/lib/CodeGen/Mangle.cpp @@ -480,11 +480,13 @@ void CXXNameMangler::mangleNestedName(const NamedDecl *ND) { void CXXNameMangler::mangleNestedName(const TemplateDecl *TD, const TemplateArgument *TemplateArgs, unsigned NumTemplateArgs) { + // ::= N [] E + Out << 'N'; - manglePrefix(TD->getDeclContext()); - mangleUnqualifiedName(TD); + mangleTemplatePrefix(TD); mangleTemplateArgs(TemplateArgs, NumTemplateArgs); + Out << 'E'; } diff --git a/test/CodeGenCXX/mangle-subst.cpp b/test/CodeGenCXX/mangle-subst.cpp index cda6df58ea..c53a6300aa 100644 --- a/test/CodeGenCXX/mangle-subst.cpp +++ b/test/CodeGenCXX/mangle-subst.cpp @@ -46,3 +46,11 @@ template void f2(V, typename V::U) { } // CHECK: @_Z2f2IiEv1VIT_ENS2_1UE template void f2(V, int); + +namespace NS { +template struct S1 {}; +template void ft3(S1, S1) { } + +// CHECK: @_ZN2NS3ft3IiEEvNS_2S1IT_EENS1_IcEE +template void ft3(S1, S1); +}