! RUN: bbc -emit-hlfir -fcuda -gpu=managed %s -o - | FileCheck %s module matching interface host_and_device module procedure sub_host module procedure sub_device end interface interface all module procedure sub_host module procedure sub_device module procedure sub_managed module procedure sub_unified end interface interface all_without_managed module procedure sub_host module procedure sub_device module procedure sub_unified end interface contains subroutine sub_host(a) integer :: a(:) end subroutine sub_device(a) integer, device :: a(:) end subroutine sub_managed(a) integer, managed :: a(:) end subroutine sub_unified(a) integer, unified :: a(:) end end module program m use matching integer, allocatable :: actual_host(:) allocate(actual_host(10)) call host_and_device(actual_host) ! Should resolve to sub_device call all(actual_host) ! Should resolved to unified call all_without_managed(actual_host) ! Should resolved to managed end ! CHECK: fir.call @_QMmatchingPsub_device ! CHECK: fir.call @_QMmatchingPsub_managed ! CHECK: fir.call @_QMmatchingPsub_unified