]> granicus.if.org Git - clang/commitdiff
Handle substitutions in mangleTemplatePrefix.
authorAnders Carlsson <andersca@mac.com>
Sat, 26 Sep 2009 22:18:22 +0000 (22:18 +0000)
committerAnders Carlsson <andersca@mac.com>
Sat, 26 Sep 2009 22:18:22 +0000 (22:18 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82879 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/Mangle.cpp
test/CodeGenCXX/mangle.cpp

index c07d9039c014d9fd1609dce76f52467d3cf77280..3db736b7b489686b0c356018e245bd5a70e3ab4b 100644 (file)
@@ -531,10 +531,15 @@ void CXXNameMangler::mangleTemplatePrefix(const TemplateDecl *ND) {
   //                   ::= <template-param>
   //                   ::= <substitution>
 
-  // FIXME: <substitution> and <template-param>
+  if (mangleSubstitution(ND))
+    return;
+  
+  // FIXME: <template-param>
   
   manglePrefix(ND->getDeclContext());
   mangleUnqualifiedName(ND->getTemplatedDecl());
+  
+  addSubstitution(ND);
 }
 
 void
index eb6267bb6e0a157035bcf75cf4421b8472c3b1b3..fffd4569b4e146b0710ed5e22596dcf1cef833c6 100644 (file)
@@ -162,8 +162,7 @@ namespace NS {
 template<typename T> bool operator==(const A<T>&, const A<T>&) { return true; }
 }
 
-// FIXME: This should be _ZN2NSeqIcEEbRK1AIT_ES5_
-// CHECK: @_ZN2NSeqIcEEbRK1AIT_ES4_
+// CHECK: @_ZN2NSeqIcEEbRK1AIT_ES5_
 template bool NS::operator==(const ::A<char>&, const ::A<char>&);
 
 namespace std {