diff options
author | John McCall <rjmccall@apple.com> | 2010-07-14 06:43:17 +0000 |
---|---|---|
committer | John McCall <rjmccall@apple.com> | 2010-07-14 06:43:17 +0000 |
commit | 4f3b5f302cb3a5c4983943b9254dfa1f5be67a66 (patch) | |
tree | d0ee320d8a6c136a17e8c20eafb04b8a674b7dc8 /clang/test/CodeGenCXX/mangle.cpp | |
parent | cb3b5a483fde37bce8086fc074f822962c58d952 (diff) | |
download | bcm5719-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.cpp | 13 |
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); +} |