diff options
author | Anders Carlsson <andersca@mac.com> | 2009-10-16 02:06:06 +0000 |
---|---|---|
committer | Anders Carlsson <andersca@mac.com> | 2009-10-16 02:06:06 +0000 |
commit | f847117ac800e46780f85de2f04c594c86b358c8 (patch) | |
tree | 3108bb97b70c389ce042fe605ff0646d0e948d98 | |
parent | 5d9134747b012b706bab56f6e2c7cf53e7c0622a (diff) | |
download | bcm5719-llvm-f847117ac800e46780f85de2f04c594c86b358c8.tar.gz bcm5719-llvm-f847117ac800e46780f85de2f04c594c86b358c8.zip |
Builtin types are subsitutable if they are qualified. Fixes PR5196.
llvm-svn: 84237
-rw-r--r-- | clang/lib/CodeGen/Mangle.cpp | 2 | ||||
-rw-r--r-- | clang/test/CodeGenCXX/mangle-subst.cpp | 5 |
2 files changed, 6 insertions, 1 deletions
diff --git a/clang/lib/CodeGen/Mangle.cpp b/clang/lib/CodeGen/Mangle.cpp index fd772748dbd..344ef06276b 100644 --- a/clang/lib/CodeGen/Mangle.cpp +++ b/clang/lib/CodeGen/Mangle.cpp @@ -705,7 +705,7 @@ void CXXNameMangler::mangleType(QualType T) { // Only operate on the canonical type! T = Context.getASTContext().getCanonicalType(T); - bool IsSubstitutable = !isa<BuiltinType>(T); + bool IsSubstitutable = T.hasQualifiers() || !isa<BuiltinType>(T); if (IsSubstitutable && mangleSubstitution(T)) return; diff --git a/clang/test/CodeGenCXX/mangle-subst.cpp b/clang/test/CodeGenCXX/mangle-subst.cpp index c53a6300aa1..46a21b62b51 100644 --- a/clang/test/CodeGenCXX/mangle-subst.cpp +++ b/clang/test/CodeGenCXX/mangle-subst.cpp @@ -54,3 +54,8 @@ template<typename T> void ft3(S1<T>, S1<char>) { } // CHECK: @_ZN2NS3ft3IiEEvNS_2S1IT_EENS1_IcEE template void ft3<int>(S1<int>, S1<char>); } + +// PR5196 +// CHECK: @_Z1fPKcS0_ +void f(const char*, const char*) {} + |