https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99833
--- Comment #5 from Patrick Palka <ppalka at gcc dot gnu.org> --- It looks like GCC 10.1 accepts this testcase, and 10.2, 10.3 and 11 reject. The requires-expression is a red herring, we can trigger the ICE without it: #include <tuple> template<class> void f() { [] (auto x) { if constexpr (auto [a, b] = std::tuple{x, x}; sizeof(a) > 1) ; }(0); } template void f<int>(); The ICE for this one isn't a regression it seems.