https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97123
Luke Hough <dlhough at gmail dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |dlhough at gmail dot com
--- Comment #2 from Luke Hough <dlhough at gmail dot com> ---
This is likely related to bug #96910.
The intrinsic assignment operator does not duplicate the allocated
subcomponents during assignment for recursive types. The `top_level =
init_recursive()` creates a temporary storage for the RHS before assigning to
the LHS. After assignment, the temporary RHS is deallocated. Since the
subcomponent is not properly duplicated during the assignment, this leads to a
double free.