1! { dg-do compile } 2! { dg-options "-fcoarray=lib -fdump-tree-original" } 3! 4! Allocate/deallocate with libcaf. 5! 6 7 subroutine test() 8 integer(4), allocatable :: xx[:], yy(:)[:] 9 integer :: stat 10 character(len=200) :: errmsg 11 allocate(xx[*], stat=stat, errmsg=errmsg) 12 allocate(yy(2)[*], stat=stat, errmsg=errmsg) 13 deallocate(xx,yy,stat=stat, errmsg=errmsg) 14 end 15 16! { dg-final { scan-tree-dump-times "_gfortran_caf_register .4, 1, &xx.token, &stat.., &errmsg, 200.;" 1 "original" } } 17! { dg-final { scan-tree-dump-times "_gfortran_caf_register .8, 1, &yy.token, &stat.., &errmsg, 200.;" 1 "original" } } 18! { dg-final { scan-tree-dump-times "_gfortran_caf_deregister .&xx.token, &stat.., &errmsg, 200.;" 1 "original" } } 19! { dg-final { scan-tree-dump-times "_gfortran_caf_deregister .&yy.token, &stat.., &errmsg, 200.;" 1 "original" } } 20! { dg-final { scan-tree-dump-times "_gfortran_caf_deregister .&yy.token, 0B, 0B, 0.;" 1 "original" } } 21! { dg-final { scan-tree-dump-times "_gfortran_caf_deregister .&xx.token, 0B, 0B, 0.;" 1 "original" } } 22! { dg-final { cleanup-tree-dump "original" } } 23