2 ! { dg-options "-fdump-tree-original" }
6 ! Finalize nonallocatable INTENT(OUT)
16 elemental
subroutine fini(var
)
17 type(t2
), intent(inout
) :: var
21 subroutine foo(x
,y
,aa
,bb
)
23 class(t
), intent(out
) :: x(:),y
24 type(t2
), intent(out
) :: aa(:),bb
27 ! Finalize CLASS + set default init
28 ! { dg-final { scan-tree-dump-times "y->_vptr->_final \\(&desc.\[0-9\]+, y->_vptr->_size, 0\\);" 1 "original" } }
29 ! { dg-final { scan-tree-dump "__builtin_memcpy \\(\\(void .\\) y->_data, \\(void .\\) y->_vptr->_def_init, \\((unsigned long|unsigned int|character\\(kind=4\\))\\) y->_vptr->_size\\);" "original" } }
30 ! { dg-final { scan-tree-dump-times "x->_vptr->_final \\(&parm.\[0-9\]+, x->_vptr->_size, 0\\);" 1 "original" } }
31 ! { dg-final { scan-tree-dump-times "x->_vptr->_copy \\(" 1 "original" } }
34 ! { dg-final { scan-tree-dump-times "parm.\[0-9\]+.data = \\(void \\*\\) &\\(\\*aa.\[0-9\]+\\)\\\[0\\\];" 1 "original" } }
35 ! { dg-final { scan-tree-dump-times "__final_m_T2 \\(&parm.\[0-9\]+, 0, 0\\);" 1 "original" } }
36 ! { dg-final { scan-tree-dump-times "desc.\[0-9\]+.data = \\(void \\* restrict\\) bb;" 1 "original" } }
37 ! { dg-final { scan-tree-dump-times "__final_m_T2 \\(&desc.\[0-9\]+, 0, 0\\);" 1 "original" } }