diff options
author | Anders Carlsson <andersca@mac.com> | 2009-09-18 18:47:07 +0000 |
---|---|---|
committer | Anders Carlsson <andersca@mac.com> | 2009-09-18 18:47:07 +0000 |
commit | aa73ab1bd037419852eb4d4fb3ddf8fe2a2a4e5b (patch) | |
tree | 964aaa952ad9874db63641def1c086c432c340ee /lib/CodeGen/Mangle.cpp | |
parent | 9263e91e2e91aaf0eb72488f2a52648c086bef35 (diff) |
Call mangleTemplatePrefix.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82247 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/Mangle.cpp')
-rw-r--r-- | lib/CodeGen/Mangle.cpp | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/lib/CodeGen/Mangle.cpp b/lib/CodeGen/Mangle.cpp index e6c3f1b42f..685bb6d594 100644 --- a/lib/CodeGen/Mangle.cpp +++ b/lib/CodeGen/Mangle.cpp @@ -82,7 +82,7 @@ namespace { const TemplateArgument *TemplateArgs, unsigned NumTemplateArgs); void manglePrefix(const DeclContext *DC); - void mangleTemplatePrefix(const DeclContext *DC); + void mangleTemplatePrefix(const NamedDecl *ND); void mangleOperatorName(OverloadedOperatorKind OO, unsigned Arity); void mangleCVQualifiers(unsigned Quals); void mangleType(QualType T); @@ -448,9 +448,7 @@ void CXXNameMangler::mangleNestedName(const NamedDecl *ND) { const FunctionDecl *FD = dyn_cast<FunctionDecl>(ND); if (FD && FD->getPrimaryTemplate()) { - // FIXME: Call mangleTemplatePrefix. - manglePrefix(FD->getDeclContext()); - mangleUnqualifiedName(FD); + mangleTemplatePrefix(FD); mangleTemplateArgumentList(*FD->getTemplateSpecializationArgs()); } else { manglePrefix(ND->getDeclContext()); @@ -509,11 +507,15 @@ void CXXNameMangler::manglePrefix(const DeclContext *DC) { addSubstitution(cast<NamedDecl>(DC)); } -void CXXNameMangler::mangleTemplatePrefix(const DeclContext *DC) { +void CXXNameMangler::mangleTemplatePrefix(const NamedDecl *ND) { // <template-prefix> ::= <prefix> <template unqualified-name> // ::= <template-param> // ::= <substitution> + // FIXME: <substitution> and <template-param> + + manglePrefix(ND->getDeclContext()); + mangleUnqualifiedName(ND); // FIXME: Implement! } |