[cfe-commits] r82881 - in /cfe/trunk: lib/CodeGen/Mangle.cpp test/CodeGenCXX/mangle-subst-std.cpp

Anders Carlsson andersca at mac.com
Sat Sep 26 16:14:39 PDT 2009


Author: andersca
Date: Sat Sep 26 18:14:39 2009
New Revision: 82881

URL: http://llvm.org/viewvc/llvm-project?rev=82881&view=rev
Log:
Mangle ::std::basic_string as Sb.

Modified:
    cfe/trunk/lib/CodeGen/Mangle.cpp
    cfe/trunk/test/CodeGenCXX/mangle-subst-std.cpp

Modified: cfe/trunk/lib/CodeGen/Mangle.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/Mangle.cpp?rev=82881&r1=82880&r2=82881&view=diff

==============================================================================
--- cfe/trunk/lib/CodeGen/Mangle.cpp (original)
+++ cfe/trunk/lib/CodeGen/Mangle.cpp Sat Sep 26 18:14:39 2009
@@ -1149,6 +1149,12 @@
       Out << "Sa";
       return true;
     }
+    
+    // <<substitution> ::= Sb # ::std::basic_string
+    if (TD->getIdentifier()->isStr("basic_string")) {
+      Out << "Sb";
+      return true;
+    }
   }
   
   return false;

Modified: cfe/trunk/test/CodeGenCXX/mangle-subst-std.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/mangle-subst-std.cpp?rev=82881&r1=82880&r2=82881&view=diff

==============================================================================
--- cfe/trunk/test/CodeGenCXX/mangle-subst-std.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/mangle-subst-std.cpp Sat Sep 26 18:14:39 2009
@@ -9,10 +9,19 @@
 };
 
 namespace std {
-  template<typename T> struct allocator { allocator(); };
+  template<typename T> struct allocator { };
 }
 
 // FIXME: typename is really not allowed here, but it's kept 
 // as a workaround for PR5061.
 // CHECK: define void @_Z1fSaIcESaIiE
 void f(typename std::allocator<char>, typename std::allocator<int>) { }
+
+namespace std {
+  template<typename T> struct basic_string { };
+}
+
+// FIXME: typename is really not allowed here, but it's kept 
+// as a workaround for PR5061.
+// CHECK: define void @_Z1fSbIcESbIiE
+void f(typename std::basic_string<char>, typename std::basic_string<int>) { }





More information about the cfe-commits mailing list