aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorPatrick Palka <ppalka@redhat.com>2022-03-04 10:17:30 -0500
committerPatrick Palka <ppalka@redhat.com>2022-03-04 10:17:30 -0500
commit074d283e249c7295d783a08eb6f0219a7f411c50 (patch)
treefd52baeb0dd6c2c3ced72387cab11e6d027b74cb /gcc
parent73baba1ae1b8f3618c2d3b674117b8a462e0ca76 (diff)
downloadgcc-074d283e249c7295d783a08eb6f0219a7f411c50.zip
gcc-074d283e249c7295d783a08eb6f0219a7f411c50.tar.gz
gcc-074d283e249c7295d783a08eb6f0219a7f411c50.tar.bz2
c++: Add testcase for already fixed PR [PR103443]
Fixed by r12-7264. PR c++/103443 gcc/testsuite/ChangeLog: * g++.dg/cpp2a/consteval29.C: New test.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/g++.dg/cpp2a/consteval29.C20
1 files changed, 20 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/cpp2a/consteval29.C b/gcc/testsuite/g++.dg/cpp2a/consteval29.C
new file mode 100644
index 0000000..6159022
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp2a/consteval29.C
@@ -0,0 +1,20 @@
+// PR c++/103443
+// { dg-do compile { target c++20 } }
+
+template<int...>
+struct A { };
+
+template<int... Is>
+consteval unsigned index_sequence2mask(A<Is...>) {
+ if constexpr (sizeof...(Is) == 0u)
+ return 0u;
+ else
+ return ((1u << Is) | ...);
+}
+
+template<unsigned Mask = index_sequence2mask(A<1,2,3>{})>
+void use_mask();
+
+int main() {
+ use_mask();
+}