summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGenCXX/mangle-ms-cxx11.cpp
diff options
context:
space:
mode:
authorDavid Majnemer <david.majnemer@gmail.com>2014-07-30 08:20:03 +0000
committerDavid Majnemer <david.majnemer@gmail.com>2014-07-30 08:20:03 +0000
commit8d5f9ab2cc2a76d490ffc6317d9552b05901ff63 (patch)
treebe791e083c00be93430821e3122644b58db3a29e /clang/test/CodeGenCXX/mangle-ms-cxx11.cpp
parent5c72938c39f97672f0557069cfcce9dd95446477 (diff)
downloadbcm5719-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.cpp14
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"
+}
OpenPOWER on IntegriCloud