! This test checks correct lowering when OpenACC routine directive is placed
! before implicit none.
! RUN: bbc -fopenacc -emit-hlfir %s -o - | FileCheck %s
module dummy_mod
contains
subroutine sub1(i)
!$acc routine seq
integer :: i
end subroutine
end module
program test_acc_routine
use dummy_mod
!$acc routine(sub2) seq
implicit none
integer :: i
contains
subroutine sub2()
end subroutine
end program
! CHECK: acc.routine @acc_routine_1 func(@_QFPsub2) seq
! CHECK: acc.routine @acc_routine_0 func(@_QMdummy_modPsub1) seq
! CHECK: func.func @_QMdummy_modPsub1(%arg0: !fir.ref<i32> {fir.bindc_name = "i"}) attributes {acc.routine_info = #acc.routine_info<[@acc_routine_0]>}
! CHECK: func.func @_QQmain() attributes {fir.bindc_name = "test_acc_routine"}
! CHECK: func.func private @_QFPsub2() attributes {acc.routine_info = #acc.routine_info<[@acc_routine_1]>, fir.host_symbol = @_QQmain, llvm.linkage = #llvm.linkage<internal>}