brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.5 KiB · 6bef20f Raw
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