diff options
author | Jakub Jelinek <jakub@redhat.com> | 2023-09-23 09:38:42 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@redhat.com> | 2023-09-23 09:38:42 +0200 |
commit | 59d27cc55a0588ed7b03bef804662cb844e8a24d (patch) | |
tree | eedab5376769e70dc1fd751cf37022a65fc802b1 | |
parent | 648347be1fdaaeb866607dbac02fba97d62b839b (diff) | |
download | gcc-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.C | 37 |
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>(); +} |