(root)/
gcc-13.2.0/
gcc/
testsuite/
g++.dg/
cpp2a/
consteval29.C
// 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();
}