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.