------- Comment #3 from janus at gcc dot gnu dot org 2010-07-22 21:44 ------- Here is an even more elementary example which shows that there is a problem for allocatable scalars, already without any polymorphic variables:
implicit none integer, allocatable :: afab1,afab2 allocate(afab1) afab1 = irand() print *,afab1 call move_alloc(afab1, afab2) print *,afab2 print *,allocated(afab2) print *,allocated(afab1) end This directly segfaults on move_alloc: 16807 Segmentation fault The problem is that _gfortran_move_alloc expects two array descriptors as arguments, but allocatable scalars have none. Therefore we probably need something like '_gfortran_move_alloc_scalar'. For classes we will probably have to add a reference to the $data component before passing them to move_alloc. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45004