https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105373
--- Comment #7 from Avi Kivity <avi at scylladb dot com> --- To give more context: struct ._anon_973 D.2159793 [value-expr: frame_ptr->D.2159793_4_7]; struct lw_shared_ptr D.2159792 [value-expr: frame_ptr->D.2159792_4_7]; (I determined that _anon_973 is the non-coroutine-lambda that is giving me grief) frame_ptr->D.2159793_4_7.__this = _51; frame_ptr->D.2159793_4_7.__old4 = frame_ptr->D.2159792_4_7; _52 = frame_ptr->__closure; _53 = _52->__newtabs; frame_ptr->D.2159793_4_7.__newtabs = _53; Here I suspect copying __old4 is bypassing the copy constructor. The source of the copy (D.2159792) has lw_shared_ptr type. I'm not fluent in gimple so maybe I'm misinterpreting it.