! RUN: bbc -emit-hlfir -fcuda %s -o - | FileCheck %s ! CHECK-LABEL: func.func @_QPtest_c_devptr( ! CHECK-SAME: %[[ARG0:.*]]: !fir.ref}>> {fir.bindc_name = "cdevptr"}) { ! CHECK: %[[DSCOPE:.*]] = fir.dummy_scope : !fir.dscope ! CHECK: %[[DECL:.*]]:2 = hlfir.declare %[[ARG0]] dummy_scope %[[DSCOPE]] arg {{[0-9]+}} {uniq_name = "_QFtest_c_devptrEcdevptr"} : (!fir.ref}>>, !fir.dscope) -> (!fir.ref}>>, !fir.ref}>>) ! CHECK: %[[CPTR:.*]] = fir.coordinate_of %[[DECL]]#0, cptr : (!fir.ref}>>) -> !fir.ref> ! CHECK: %[[ADDR:.*]] = fir.coordinate_of %[[CPTR]], __address : (!fir.ref>) -> !fir.ref ! CHECK: %[[VAL:.*]] = fir.load %[[ADDR]] : !fir.ref ! CHECK: %[[ARG:.*]] = fir.convert %[[VAL]] : (i64) -> !fir.ref ! CHECK: fir.call @get_expected_f(%[[ARG]]) proc_attrs fastmath : (!fir.ref) -> () subroutine test_c_devptr(cdevptr) use __fortran_builtins, only : c_devptr => __builtin_c_devptr interface subroutine get_expected_f(src) bind(c) use __fortran_builtins, only : c_devptr => __builtin_c_devptr type(c_devptr), value :: src end subroutine get_expected_f end interface type(c_devptr) :: cdevptr call get_expected_f(cdevptr) end