https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96926

Jonathan Wakely <redi at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
      Known to fail|                            |10.2.1, 11.0, 9.3.1
      Known to work|                            |8.3.0
   Last reconfirmed|                            |2020-09-03
     Ever confirmed|0                           |1
                 CC|                            |jason at gcc dot gnu.org

--- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> ---
template <typename> struct b;
template <typename> struct __is_constructible_impl;
template <bool> struct g;
template <bool l, typename> using c = typename g<l>::d;
template <int, typename... e> struct m {
  template <typename> static bool h() {
    return b<__is_constructible_impl<e>...>::i;
  }
};
template <typename... ab> class o {
  template <bool l> using ad = m<l, ab...>;
  template <bool l, typename... j> using k = c<ad<l>::template h<j...>(),
bool>;
  template <bool p = 0, k<p, ab...>> o(ab...);
};
struct q {
  o<int> n;
};
struct r {
  q f;
  r();
};
int main() { r a; }

This is accepted by EDG, Clang and GCC 8. Rejected by GCC 9+ since r262172
(fixing PR c++/80290)

Reply via email to