]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
testsuite: Add new test for already fixed PR111455
authorJakub Jelinek <jakub@redhat.com>
Sat, 23 Sep 2023 07:38:42 +0000 (09:38 +0200)
committerJakub Jelinek <jakub@redhat.com>
Sat, 23 Sep 2023 07:38:42 +0000 (09:38 +0200)
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.

gcc/testsuite/g++.dg/ext/integer-pack8.C [new file with mode: 0644]

diff --git a/gcc/testsuite/g++.dg/ext/integer-pack8.C b/gcc/testsuite/g++.dg/ext/integer-pack8.C
new file mode 100644 (file)
index 0000000..ad15cc3
--- /dev/null
@@ -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>();
+}