https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116292
anlauf at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |vehre at gcc dot gnu.org --- Comment #7 from anlauf at gcc dot gnu.org --- OK, this is weird: Breakpoint 3, conv_intrinsic_move_alloc (code=<optimized out>) at ../../gcc-trunk/gcc/fortran/trans-intrinsic.cc:12769 12769 from_se.expr = gfc_get_symbol_decl (vtab); (gdb) l 12764 gfc_symbol *vtab; 12765 from_tree = from_se.expr; 12766 12767 vtab = gfc_find_vtab (&from_expr->ts); 12768 gcc_assert (vtab); 12769 from_se.expr = gfc_get_symbol_decl (vtab); 12770 } 12771 gfc_add_block_to_block (&block, &from_se.pre); 12772 12773 to_se.want_pointer = 1; The offending code here was added in r15-1704-gaa3599a10cab34: commit aa3599a10cab34104c0b9bd6951c5f0c420795d8 Author: Andre Vehreschild <ve...@gcc.gnu.org> Date: Tue Jun 11 12:52:26 2024 +0200 Add gfc_class_set_vptr. First step to adding a general assign all class type's data members routine. Having a general routine prevents forgetting to tackle the edge cases, e.g. setting _len. gcc/fortran/ChangeLog: * trans-expr.cc (gfc_class_set_vptr): Add setting of _vptr member. * trans-intrinsic.cc (conv_intrinsic_move_alloc): First use of gfc_class_set_vptr and refactor very similar code. * trans.h (gfc_class_set_vptr): Declare the new function. CC'ing Andre.