diff options
author | David Majnemer <david.majnemer@gmail.com> | 2014-07-30 08:20:03 +0000 |
---|---|---|
committer | David Majnemer <david.majnemer@gmail.com> | 2014-07-30 08:20:03 +0000 |
commit | 8d5f9ab2cc2a76d490ffc6317d9552b05901ff63 (patch) | |
tree | be791e083c00be93430821e3122644b58db3a29e /clang/test/CodeGenCXX/mangle-ms-cxx11.cpp | |
parent | 5c72938c39f97672f0557069cfcce9dd95446477 (diff) | |
download | bcm5719-llvm-8d5f9ab2cc2a76d490ffc6317d9552b05901ff63.tar.gz bcm5719-llvm-8d5f9ab2cc2a76d490ffc6317d9552b05901ff63.zip |
MS ABI: Mangle alias templates used as template-template arguments
A templated using declaration may be used as a template-template
argument.
Unfortunately, the VS "14" chooses '?' as the sole marker for the
argument. This is problematic because it presupposes the possibility of
using more than one template-aliases as arguments to the same template.
This fixes PR20047.
llvm-svn: 214290
Diffstat (limited to 'clang/test/CodeGenCXX/mangle-ms-cxx11.cpp')
-rw-r--r-- | clang/test/CodeGenCXX/mangle-ms-cxx11.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/clang/test/CodeGenCXX/mangle-ms-cxx11.cpp b/clang/test/CodeGenCXX/mangle-ms-cxx11.cpp index 373d2b7b957..cb9c64fc9a2 100644 --- a/clang/test/CodeGenCXX/mangle-ms-cxx11.cpp +++ b/clang/test/CodeGenCXX/mangle-ms-cxx11.cpp @@ -139,3 +139,17 @@ void templ_fun_with_pack() {} template void templ_fun_with_pack<>(); // CHECK-DAG: @"\01??$templ_fun_with_pack@$S@@YAXXZ" + +namespace PR20047 { +template <typename T> +struct A {}; + +template <typename T> +using AliasA = A<T>; + +template <template <typename> class> +void f() {} + +template void f<AliasA>(); +// CHECK-DAG: @"\01??$f@?@PR20047@@YAXXZ" +} |