https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95138
--- Comment #2 from anlauf at gcc dot gnu.org --- Another datapoint: inserting select type (o) type is (integer) print *, transfer(o, v) end select prints the right thing: 1 2 3 Also note the possibly related PR84006, where one gets an ICE on print *, "storage_size (o) =", storage_size (o) ! ICE unless one places this inside a select type.