70 lines · plain
1! Test mangling with BIND(C) inherited from procedure interface.2! RUN: bbc -emit-hlfir -o - %s | FileCheck %s3 4subroutine test()5 interface6 subroutine iface_notbindc()7 end subroutine8 subroutine iface_bindc() bind(c)9 end subroutine10 subroutine iface_explicit_name() bind(c, name="explicit_name")11 end subroutine12 subroutine iface_nobinding() bind(c, name="")13 end subroutine14 end interface15 16 procedure(iface_bindc) :: foo_iface_bindc17 procedure(iface_explicit_name) :: foo_iface_explicit_name18 procedure(iface_nobinding) :: foo_iface_nobinding19 20 procedure(iface_bindc), bind(c) :: extra_bindc_iface_bindc21 procedure(iface_explicit_name), bind(c) :: extra_bindc_iface_explicit_name22 procedure(iface_nobinding), bind(c) :: extra_bindc_iface_nobinding23 24 procedure(iface_bindc), bind(c, name="bar_iface_bindc_2") :: bar_iface_bindc25 procedure(iface_explicit_name), bind(c,name="bar_iface_explicit_name_2") :: bar_iface_explicit_name26 procedure(iface_nobinding), bind(c, name="bar_iface_nobinding_2") :: bar_iface_nobinding27 28 procedure(iface_bindc), bind(c, name="") :: nobinding_iface_bindc29 procedure(iface_explicit_name), bind(c, name="") :: nobinding_iface_explicit_name30 procedure(iface_nobinding), bind(c, name="") :: nobinding_iface_nobinding31 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 subroutine70