summaryrefslogtreecommitdiffstats
path: root/clang/test/SemaTemplate/cxx1z-fold-expressions.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/test/SemaTemplate/cxx1z-fold-expressions.cpp')
-rw-r--r--clang/test/SemaTemplate/cxx1z-fold-expressions.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/clang/test/SemaTemplate/cxx1z-fold-expressions.cpp b/clang/test/SemaTemplate/cxx1z-fold-expressions.cpp
index 383f51df21d..44f388843b3 100644
--- a/clang/test/SemaTemplate/cxx1z-fold-expressions.cpp
+++ b/clang/test/SemaTemplate/cxx1z-fold-expressions.cpp
@@ -92,3 +92,13 @@ template<typename ...T> constexpr auto spaceship3(T ...t) { return (t <=> ... <=
template<typename ...T> constexpr auto binary_conditional1(T ...t) { return (t ?: ...); } // expected-error {{expected expression}}
template<typename ...T> constexpr auto binary_conditional2(T ...t) { return (... ?: t); } // expected-error {{expected expression}}
template<typename ...T> constexpr auto binary_conditional3(T ...t) { return (t ?: ... ?: 0); } // expected-error {{expected expression}}
+
+namespace PR41845 {
+ template <int I> struct Constant {};
+
+ template <int... Is> struct Sum {
+ template <int... Js> using type = Constant<((Is + Js) + ... + 0)>; // expected-error {{pack expansion contains parameter pack 'Js' that has a different length (1 vs. 2) from outer parameter packs}}
+ };
+
+ Sum<1>::type<1, 2> x; // expected-note {{instantiation of}}
+}
OpenPOWER on IntegriCloud