]> granicus.if.org Git - clang/commitdiff
Call mangleTemplatePrefix.
authorAnders Carlsson <andersca@mac.com>
Fri, 18 Sep 2009 18:47:07 +0000 (18:47 +0000)
committerAnders Carlsson <andersca@mac.com>
Fri, 18 Sep 2009 18:47:07 +0000 (18:47 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82247 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/Mangle.cpp

index e6c3f1b42f99039ec70df499a3ce8399851fcb1f..685bb6d594bd9c9b7f659c8aa76d7fe3610dc107 100644 (file)
@@ -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!
 }