summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGenCXX/mangle.cpp
diff options
context:
space:
mode:
authorJohn McCall <rjmccall@apple.com>2010-07-14 06:43:17 +0000
committerJohn McCall <rjmccall@apple.com>2010-07-14 06:43:17 +0000
commit4f3b5f302cb3a5c4983943b9254dfa1f5be67a66 (patch)
treed0ee320d8a6c136a17e8c20eafb04b8a674b7dc8 /clang/test/CodeGenCXX/mangle.cpp
parentcb3b5a483fde37bce8086fc074f822962c58d952 (diff)
downloadbcm5719-llvm-4f3b5f302cb3a5c4983943b9254dfa1f5be67a66.tar.gz
bcm5719-llvm-4f3b5f302cb3a5c4983943b9254dfa1f5be67a66.zip
Fix the mangling of template template arguments, which do not always
follow <name>; instead they follow <type>, which has <name> as a subset. Fixes PR7446. llvm-svn: 108326
Diffstat (limited to 'clang/test/CodeGenCXX/mangle.cpp')
-rw-r--r--clang/test/CodeGenCXX/mangle.cpp13
1 files changed, 12 insertions, 1 deletions
diff --git a/clang/test/CodeGenCXX/mangle.cpp b/clang/test/CodeGenCXX/mangle.cpp
index 54a4060352e..814a7592fad 100644
--- a/clang/test/CodeGenCXX/mangle.cpp
+++ b/clang/test/CodeGenCXX/mangle.cpp
@@ -495,4 +495,15 @@ namespace test12 {
// CHECK: _ZN6test121fENS_1AILt33000EEE
template <unsigned short> struct A { };
void f(A<33000>) { }
-} \ No newline at end of file
+}
+
+// PR7446
+namespace test13 {
+ template <template <class> class T> class A {};
+ template <class U> class B {};
+
+ template <template<class> class T> void foo(const A<T> &a) {}
+
+ // CHECK: define weak_odr void @_ZN6test133fooINS_1BEEEvRKNS_1AIT_EE(
+ template void foo(const A<B> &a);
+}
OpenPOWER on IntegriCloud