aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2023-09-23 09:38:42 +0200
committerJakub Jelinek <jakub@redhat.com>2023-09-23 09:38:42 +0200
commit59d27cc55a0588ed7b03bef804662cb844e8a24d (patch)
treeeedab5376769e70dc1fd751cf37022a65fc802b1
parent648347be1fdaaeb866607dbac02fba97d62b839b (diff)
downloadgcc-59d27cc55a0588ed7b03bef804662cb844e8a24d.zip
gcc-59d27cc55a0588ed7b03bef804662cb844e8a24d.tar.gz
gcc-59d27cc55a0588ed7b03bef804662cb844e8a24d.tar.bz2
testsuite: Add new test for already fixed PR111455
The following testcase has been fixed by r14-4231. 2023-09-23 Jakub Jelinek <jakub@redhat.com> PR c++/111455 * g++.dg/ext/integer-pack8.C: New test.
-rw-r--r--gcc/testsuite/g++.dg/ext/integer-pack8.C37
1 files changed, 37 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/ext/integer-pack8.C b/gcc/testsuite/g++.dg/ext/integer-pack8.C
new file mode 100644
index 0000000..ad15cc3
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ext/integer-pack8.C
@@ -0,0 +1,37 @@
+// PR c++/111455
+// { dg-do compile { target c++11 } }
+
+namespace std
+{
+ template <typename T, T... I>
+ struct integer_sequence {};
+
+ template <typename T, T N>
+ using make_integer_sequence
+ = integer_sequence <T, __integer_pack (N)...>;
+}
+
+template <long... V>
+void foo (std::integer_sequence <long, V...>)
+{}
+
+template <typename ...T>
+struct U
+{
+ static constexpr long value = 1;
+ constexpr operator int () = delete;
+ constexpr operator long () { return value; }
+};
+
+template <typename T>
+struct R
+{
+ using S = std::make_integer_sequence <long, U <T> {}>;
+ R () noexcept (noexcept (foo (S ()))) {}
+};
+
+int
+main ()
+{
+ R <long>();
+}