[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