! { dg-do compile } ! ! PR fortran/57035 ! ! subroutine assumed_rank (a) use iso_c_binding integer, intent(in), target :: a(..) integer :: c(1:4) type(c_ptr) :: xx c = ubound(c,a) ! { dg-error "Assumed-rank argument at .1. is only permitted as first actual argument to the intrinsic inquiry function ubound" } c = transfer(a,1) ! { dg-error "Assumed-rank argument at .1. is only permitted as actual argument to intrinsic inquiry functions" } xx = c_loc(a) end subroutine subroutine assumed_type (a) use iso_c_binding type(*), intent(in), target :: a integer :: c(1:4) type(c_ptr) :: xx c = ubound(c,a) ! { dg-error "Assumed-type argument at .1. is only permitted as first actual argument to the intrinsic ubound" } c = transfer(a,1) ! { dg-error "Assumed-type argument at .1. is not permitted as actual argument to the intrinsic transfer" } xx = c_loc(a) end subroutine subroutine no_arg_check (a) use iso_c_binding integer, intent(in), target :: a !gcc$ attributes no_arg_check :: a integer :: c(1:4) type(c_ptr) :: xx c = ubound(c,a) ! { dg-error "Variable with NO_ARG_CHECK attribute at .1. is only permitted as argument to the intrinsic functions C_LOC and PRESENT" } c = transfer(a,1) ! { dg-error "Variable with NO_ARG_CHECK attribute at .1. is only permitted as argument to the intrinsic functions C_LOC and PRESENT" } xx = c_loc(a) end subroutine