diff options
author | David Majnemer <david.majnemer@gmail.com> | 2014-08-05 22:43:45 +0000 |
---|---|---|
committer | David Majnemer <david.majnemer@gmail.com> | 2014-08-05 22:43:45 +0000 |
commit | 57fbc0c35fb143b0acce549f82e536ea4022634f (patch) | |
tree | d1cae5bccd309628a7894c3d71f25f2083adf56b /clang/test/CodeGenCXX/mangle-ms-cxx11.cpp | |
parent | 74a6816b33e40bee5a45d864268fb08f4ce46e05 (diff) | |
download | bcm5719-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.cpp | 12 |
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 {}; |