Mangle ::std::basic_string as Sb.

llvm-svn: 82881
This commit is contained in:
Anders Carlsson 2009-09-26 23:14:39 +00:00
parent 872ce0dc31
commit 853bb50382
2 changed files with 16 additions and 1 deletions

View File

@ -1149,6 +1149,12 @@ bool CXXNameMangler::mangleStandardSubstitution(const NamedDecl *ND) {
Out << "Sa";
return true;
}
// <<substitution> ::= Sb # ::std::basic_string
if (TD->getIdentifier()->isStr("basic_string")) {
Out << "Sb";
return true;
}
}
return false;

View File

@ -9,10 +9,19 @@ namespace std {
};
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>) { }