! RUN: %flang_fc1 -fopenacc -fdebug-unparse %s | FileCheck %s ! Test unparse does not crash with OpenACC directives. ! Test bug 47659 program bug47659 integer :: i, j label1: do i = 1, 10 !$acc parallel loop do j = 1, 10 if (j == 2) then stop 1 end if end do end do label1 end program !CHECK-LABEL: PROGRAM bug47659 !CHECK: !$ACC PARALLEL LOOP subroutine acc_loop() integer :: i, j real :: a(10) integer :: gangNum, gangDim, gangStatic !CHECK-LABEL: SUBROUTINE acc_loop !$acc loop collapse(force: 2) do i = 1, 10 do j = 1, 10 end do end do !CHECK: !$ACC LOOP COLLAPSE(FORCE:2_4) !$acc loop gang do i = 1, 10 a(i) = i end do ! CHECK: !$ACC LOOP GANG !$acc loop gang(gangNum) do i = 1, 10 a(i) = i end do ! CHECK: !$ACC LOOP GANG(NUM:gangnum) !$acc loop gang(num: gangNum) do i = 1, 10 a(i) = i end do ! CHECK: !$ACC LOOP GANG(NUM:gangnum) !$acc loop gang(dim: gangDim) do i = 1, 10 a(i) = i end do ! CHECK: !$ACC LOOP GANG(DIM:gangdim) !$acc loop gang(static:gangStatic) do i = 1, 10 a(i) = i end do ! CHECK: !$ACC LOOP GANG(STATIC:gangstatic) !$acc loop gang(static:*) do i = 1, 10 a(i) = i end do ! CHECK: !$ACC LOOP GANG(STATIC:*) !$acc loop gang(static:gangStatic, dim: gangDim) do i = 1, 10 a(i) = i end do ! CHECK: !$ACC LOOP GANG(STATIC:gangstatic,DIM:gangdim) end subroutine subroutine routine1() !$acc routine bind("routine1_") ! CHECK: !$ACC ROUTINE BIND("routine1_") end subroutine subroutine routine2() !$acc routine(routine2) bind(routine2) ! CHECK: !$ACC ROUTINE(routine2) BIND(routine2) end subroutine