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

--- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> ---
A little less than a month ago, Dec 21.

I'm trying to bisect it. A slightly modified copy of trunk headers (to remove
the use of explicit object member functions) compiles with GCC 13.1 but ICEs
with the releases/gcc-13 branchpoint, so might be an ice-with-checking

GCC 13.1 with -std=c++23 -fchecking=3 bails out with:

gen.cc: In function 'void concat(concat<const std::initializer_list<int>&,
const std::vector<int, std::allocator<int> >&, const std::array<double,
3>&>(const std::initializer_list<int>&, const std::vector<int,
std::allocator<int> >&, const std::array<double,
3>&)::_Z6concatIJRKSt16initializer_listIiERKSt6vectorIiSaIiEERKSt5arrayIdLm3EEEESt9generatorIddvEDpOT_.Frame*)':
gen.cc:12:1: error: type mismatch in 'component_ref'
   12 | concat(Ranges&&... ranges) -> generator<double, double>
      | ^~~~~~
struct _Recursive_awaiter

struct _Recursive_awaiter

gen.cc:12:1: error: invalid LHS in gimple call
frame_ptr->Yd0_2_3 = std::__gen::_Promise_erased<const
double&>::yield_value<const std::initializer_list<int>&,
std::allocator<std::byte> > (_15, _16); [return slot optimization]
gen.cc:12:1: error: type mismatch in 'component_ref'
struct _Recursive_awaiter

struct _Recursive_awaiter

gen.cc:12:1: error: invalid LHS in gimple call
frame_ptr->Yd0_2_3 = std::__gen::_Promise_erased<const
double&>::yield_value<const std::vector<int, std::allocator<int> >&,
std::allocator<std::byte> > (_23, _24); [return slot optimization]
gen.cc:12: confused by earlier errors, bailing out



I'll attach the .ii I'm using.

Reply via email to