1! Test mangling with BIND(C) inherited from procedure interface. 2! RUN: bbc -emit-hlfir -o - %s | FileCheck %s 3 4subroutine test() 5 interface 6 subroutine iface_notbindc() 7 end subroutine 8 subroutine iface_bindc() bind(c) 9 end subroutine 10 subroutine iface_explicit_name() bind(c, name="explicit_name") 11 end subroutine 12 subroutine iface_nobinding() bind(c, name="") 13 end subroutine 14 end interface 15 16 procedure(iface_bindc) :: foo_iface_bindc 17 procedure(iface_explicit_name) :: foo_iface_explicit_name 18 procedure(iface_nobinding) :: foo_iface_nobinding 19 20 procedure(iface_bindc), bind(c) :: extra_bindc_iface_bindc 21 procedure(iface_explicit_name), bind(c) :: extra_bindc_iface_explicit_name 22 procedure(iface_nobinding), bind(c) :: extra_bindc_iface_nobinding 23 24 procedure(iface_bindc), bind(c, name="bar_iface_bindc_2") :: bar_iface_bindc 25 procedure(iface_explicit_name), bind(c,name="bar_iface_explicit_name_2") :: bar_iface_explicit_name 26 procedure(iface_nobinding), bind(c, name="bar_iface_nobinding_2") :: bar_iface_nobinding 27 28 procedure(iface_bindc), bind(c, name="") :: nobinding_iface_bindc 29 procedure(iface_explicit_name), bind(c, name="") :: nobinding_iface_explicit_name 30 procedure(iface_nobinding), bind(c, name="") :: nobinding_iface_nobinding 31 32 call iface_notbindc() 33 call iface_bindc() 34 call iface_explicit_name() 35 call iface_nobinding() 36 37 call foo_iface_bindc() 38 call foo_iface_explicit_name() 39 call foo_iface_nobinding() 40 41 call extra_bindc_iface_bindc() 42 call extra_bindc_iface_explicit_name() 43 call extra_bindc_iface_nobinding() 44 45 call bar_iface_bindc() 46 call bar_iface_explicit_name() 47 call bar_iface_nobinding() 48 49 call nobinding_iface_bindc() 50 call nobinding_iface_explicit_name() 51 call nobinding_iface_nobinding() 52 53! CHECK: fir.call @_QPiface_notbindc() 54! CHECK: fir.call @iface_bindc() 55! CHECK: fir.call @explicit_name() 56! CHECK: fir.call @_QPiface_nobinding() 57! CHECK: fir.call @foo_iface_bindc() 58! CHECK: fir.call @foo_iface_explicit_name() 59! CHECK: fir.call @foo_iface_nobinding() 60! CHECK: fir.call @extra_bindc_iface_bindc() 61! CHECK: fir.call @extra_bindc_iface_explicit_name() 62! CHECK: fir.call @extra_bindc_iface_nobinding() 63! CHECK: fir.call @bar_iface_bindc_2() 64! CHECK: fir.call @bar_iface_explicit_name_2() 65! CHECK: fir.call @bar_iface_nobinding_2() 66! CHECK: fir.call @_QPnobinding_iface_bindc() 67! CHECK: fir.call @_QPnobinding_iface_explicit_name() 68! CHECK: fir.call @_QPnobinding_iface_nobinding() 69end subroutine 70