[Bug c++/86355] [10 Regression] Internal compiler error with pack expansion and fold expression
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Jul 7 08:02:31 GMT 2023
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86355
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Resolution|--- |FIXED
Target Milestone|10.5 |10.4
Known to fail| |10.3.0
Known to work| |10.4.0
Status|ASSIGNED |RESOLVED
--- Comment #13 from Richard Biener <rguenth at gcc dot gnu.org> ---
The comment#5 testcase was fixed in GCC 10.4 but the original testcase is still
rejected everywhere:
t.C: In substitution of 'template<class V, class ... T> using check2 =
mp_all<std::is_same<V, void>, std::integral_constant<bool,
(static_cast<bool>(std::is_copy_constructible<T>::value) ... &&
static_cast<bool>(std::integral_constant<bool,
(static_cast<bool>(std::is_copy_assignable<T>::value) && ...)>::value))> >
[with V = void; T = {int, float}]':
t.C:10:52: required from here
t.C:6:77: error: invalid use of pack expansion expression
6 | ass... T> using mp_all = mp_bool<(static_cast<bool>(T::value) && ...)>;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
t.C:10:62: error: template argument 1 is invalid
10 | tatic_assert( std::is_same<check2<void, int, float>, mp_true>::value );
| ^
we seem to track the ICE here, so fixed.
More information about the Gcc-bugs
mailing list