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 | b6f532e2b03dbbfd97a37a7bb845fe23f8136889 (patch) | |
tree | 6d34af39f9c1f8cb8624d83e4609d0d4be6bda50 /test/CodeGenCXX/mangle.cpp | |
parent | 5495f37302f7c82192dab1ce8d9c9fe76ed0ee37 (diff) |
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.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108326 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGenCXX/mangle.cpp')
-rw-r--r-- | test/CodeGenCXX/mangle.cpp | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/test/CodeGenCXX/mangle.cpp b/test/CodeGenCXX/mangle.cpp index 54a4060352..814a7592fa 100644 --- a/test/CodeGenCXX/mangle.cpp +++ b/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); +} |