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

--- Comment #5 from Daniel Bertalan <dani at danielbertalan dot dev> ---
I tried Jakub's patch (thank you for the super quick response!), it crashes if
the constructor has non-type template parameters:


template <typename> struct SpanImpl {
  template <long> SpanImpl();
};
template <typename T> struct Span : SpanImpl<T> {
  using SpanImpl<T>::SpanImpl;
};

Span<char> c = {};

$ g++ -std=c++20 crash.cpp

crash.cpp: In instantiation of 'struct Span<char>':
crash.cpp:8:12:   required from here
    8 | Span<char> c = {};
      |            ^
crash.cpp:5:22: internal compiler error: tree check: expected function_decl,
have template_decl in implicitly_declare_fn, at cp/method.cc:3313
    5 |   using SpanImpl<T>::SpanImpl;
      |                      ^~~~~~~~

Reply via email to