summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGenCXX/mangle-ms-cxx11.cpp
diff options
context:
space:
mode:
authorDavid Majnemer <david.majnemer@gmail.com>2014-08-05 22:43:45 +0000
committerDavid Majnemer <david.majnemer@gmail.com>2014-08-05 22:43:45 +0000
commit57fbc0c35fb143b0acce549f82e536ea4022634f (patch)
treed1cae5bccd309628a7894c3d71f25f2083adf56b /clang/test/CodeGenCXX/mangle-ms-cxx11.cpp
parent74a6816b33e40bee5a45d864268fb08f4ce46e05 (diff)
downloadbcm5719-llvm-57fbc0c35fb143b0acce549f82e536ea4022634f.tar.gz
bcm5719-llvm-57fbc0c35fb143b0acce549f82e536ea4022634f.zip
MS ABI: Mangle empty type parameter packs compatibly
The MS mangling scheme apparently has separate manglings for type and non-type parameter packs when they are empty. Match template arguments with parameters during mangling; check the parameter to see if it was destined to hold type-ish things or nontype-ish things. Differential Revision: http://reviews.llvm.org/D4792 llvm-svn: 214932
Diffstat (limited to 'clang/test/CodeGenCXX/mangle-ms-cxx11.cpp')
-rw-r--r--clang/test/CodeGenCXX/mangle-ms-cxx11.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/clang/test/CodeGenCXX/mangle-ms-cxx11.cpp b/clang/test/CodeGenCXX/mangle-ms-cxx11.cpp
index 8a528a6bfd7..490edd831b2 100644
--- a/clang/test/CodeGenCXX/mangle-ms-cxx11.cpp
+++ b/clang/test/CodeGenCXX/mangle-ms-cxx11.cpp
@@ -140,6 +140,18 @@ void templ_fun_with_pack() {}
template void templ_fun_with_pack<>();
// CHECK-DAG: @"\01??$templ_fun_with_pack@$S@@YAXXZ"
+template <typename...>
+void templ_fun_with_ty_pack() {}
+
+template void templ_fun_with_ty_pack<>();
+// CHECK-DAG: @"\01??$templ_fun_with_ty_pack@$$V@@YAXXZ"
+
+template <template <class> class...>
+void templ_fun_with_templ_templ_pack() {}
+
+template void templ_fun_with_templ_templ_pack<>();
+// CHECK-DAG: @"\01??$templ_fun_with_templ_templ_pack@$$V@@YAXXZ"
+
namespace PR20047 {
template <typename T>
struct A {};
OpenPOWER on IntegriCloud