! Check that acc.terminator is not inserted in data construct ! RUN: bbc -fopenacc -emit-hlfir %s -o - | FileCheck %s ! RUN: bbc -fopenacc -fcuda -emit-hlfir %s -o - | FileCheck %s program main use, intrinsic :: iso_c_binding implicit none real(8), pointer :: a(:,:,:),b(:,:,:),c(:,:,:),c2(:,:,:) integer, parameter :: n1 = 400, n2 = 20 integer*4 :: stat integer :: i,j,k stat = 0 do i=1,n2 !$acc data copyin(a(:,:,i),b(:,:,i),c(:,:,i)) copyout(c2(:,:,i)) !$acc host_data use_device(a(:,:,i),b(:,:,i),c(:,:,i)) !$acc end host_data if ( stat .ne. 0 ) then print *, "stat = ",stat stop ! terminator here should be fir.unreachable end if !$acc parallel loop present(c(:,:,i),c2(:,:,i)) do j = 1,n1 do k = 1,n1 c2(k,j,i) = 1.5d0 * c(k,j,i) enddo enddo !$acc end parallel loop !$acc end data enddo !$acc wait deallocate(a,b,c,c2) end program ! CHECK-LABEL: func.func @_QQmain() ! CHECK: acc.data ! CHECK: acc.host_data ! CHECK: acc.terminator ! CHECK: fir.call @_FortranAStopStatement ! CHECK: fir.unreachable ! CHECK: acc.parallel ! CHECK-COUNT-3: acc.yield ! CHECK: acc.terminator