https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118574
Jason Merrill <jason at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2025-02-10 Ever confirmed|0 |1 --- Comment #13 from Jason Merrill <jason at gcc dot gnu.org> --- >From the gimple, it's clear that the problem is that with -frange-for-ext-temps the reference temp for __for_range isn't getting a slot in the coro frame: - frame_ptr->_D2_3_0 = getStringList (); [return slot optimization] - _13 = &frame_ptr->_D2_3_0; - frame_ptr->__for_range_2_3 = _13; + struct vector D.139648; + D.139648 = getStringList (); [return slot optimization] + frame_ptr->__for_range_2_3 = &D.139648; + _13 = frame_ptr->__for_range_2_3; This temporary should not be affected by the flag, it's already extended because it's bound to the reference variable.