summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGenCXX
diff options
context:
space:
mode:
authorDavid Majnemer <david.majnemer@gmail.com>2016-07-12 16:48:17 +0000
committerDavid Majnemer <david.majnemer@gmail.com>2016-07-12 16:48:17 +0000
commit6d2b60a2be21cce7ae856c72ff6a88b8828e1c61 (patch)
treee872e3dbfd042b25008fdd549366216ac6782abc /clang/test/CodeGenCXX
parent3b0a9934fa0921fd3581ec69824ac1543391b44a (diff)
downloadbcm5719-llvm-6d2b60a2be21cce7ae856c72ff6a88b8828e1c61.tar.gz
bcm5719-llvm-6d2b60a2be21cce7ae856c72ff6a88b8828e1c61.zip
[ItaniumMangle] Correctly mangle BuiltinTemplateDecls
A BuiltinTemplateDecl has no underlying templated decl and as such they cannot be relied upon for mangling. The ItaniumMangler had some bugs here which lead to crashes. This fixes PR28519. llvm-svn: 275190
Diffstat (limited to 'clang/test/CodeGenCXX')
-rw-r--r--clang/test/CodeGenCXX/mangle-template.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/clang/test/CodeGenCXX/mangle-template.cpp b/clang/test/CodeGenCXX/mangle-template.cpp
index 7fa300ae237..60481b3328f 100644
--- a/clang/test/CodeGenCXX/mangle-template.cpp
+++ b/clang/test/CodeGenCXX/mangle-template.cpp
@@ -201,3 +201,14 @@ namespace test14 {
int call(bool b) { return inl<void>(b); }
}
+
+namespace std {
+template <class _Tp, _Tp...> struct integer_sequence {};
+}
+
+namespace test15 {
+template <int N>
+__make_integer_seq<std::integer_sequence, int, N> make() {}
+template __make_integer_seq<std::integer_sequence, int, 5> make<5>();
+// CHECK: define weak_odr void @_ZN6test154makeILi5EEE18__make_integer_seqISt16integer_sequenceiXT_EEv(
+}
OpenPOWER on IntegriCloud