| ! Test mangling with BIND(C) inherited from procedure interface. |
| ! RUN: bbc -emit-hlfir -o - %s | FileCheck %s |
| |
| subroutine test() |
| interface |
| subroutine iface_notbindc() |
| end subroutine |
| subroutine iface_bindc() bind(c) |
| end subroutine |
| subroutine iface_explicit_name() bind(c, name="explicit_name") |
| end subroutine |
| subroutine iface_nobinding() bind(c, name="") |
| end subroutine |
| end interface |
| |
| procedure(iface_bindc) :: foo_iface_bindc |
| procedure(iface_explicit_name) :: foo_iface_explicit_name |
| procedure(iface_nobinding) :: foo_iface_nobinding |
| |
| procedure(iface_bindc), bind(c) :: extra_bindc_iface_bindc |
| procedure(iface_explicit_name), bind(c) :: extra_bindc_iface_explicit_name |
| procedure(iface_nobinding), bind(c) :: extra_bindc_iface_nobinding |
| |
| procedure(iface_bindc), bind(c, name="bar_iface_bindc_2") :: bar_iface_bindc |
| procedure(iface_explicit_name), bind(c,name="bar_iface_explicit_name_2") :: bar_iface_explicit_name |
| procedure(iface_nobinding), bind(c, name="bar_iface_nobinding_2") :: bar_iface_nobinding |
| |
| procedure(iface_bindc), bind(c, name="") :: nobinding_iface_bindc |
| procedure(iface_explicit_name), bind(c, name="") :: nobinding_iface_explicit_name |
| procedure(iface_nobinding), bind(c, name="") :: nobinding_iface_nobinding |
| |
| call iface_notbindc() |
| call iface_bindc() |
| call iface_explicit_name() |
| call iface_nobinding() |
| |
| call foo_iface_bindc() |
| call foo_iface_explicit_name() |
| call foo_iface_nobinding() |
| |
| call extra_bindc_iface_bindc() |
| call extra_bindc_iface_explicit_name() |
| call extra_bindc_iface_nobinding() |
| |
| call bar_iface_bindc() |
| call bar_iface_explicit_name() |
| call bar_iface_nobinding() |
| |
| call nobinding_iface_bindc() |
| call nobinding_iface_explicit_name() |
| call nobinding_iface_nobinding() |
| |
| ! CHECK: fir.call @_QPiface_notbindc() |
| ! CHECK: fir.call @iface_bindc() |
| ! CHECK: fir.call @explicit_name() |
| ! CHECK: fir.call @_QPiface_nobinding() |
| ! CHECK: fir.call @foo_iface_bindc() |
| ! CHECK: fir.call @foo_iface_explicit_name() |
| ! CHECK: fir.call @foo_iface_nobinding() |
| ! CHECK: fir.call @extra_bindc_iface_bindc() |
| ! CHECK: fir.call @extra_bindc_iface_explicit_name() |
| ! CHECK: fir.call @extra_bindc_iface_nobinding() |
| ! CHECK: fir.call @bar_iface_bindc_2() |
| ! CHECK: fir.call @bar_iface_explicit_name_2() |
| ! CHECK: fir.call @bar_iface_nobinding_2() |
| ! CHECK: fir.call @_QPnobinding_iface_bindc() |
| ! CHECK: fir.call @_QPnobinding_iface_explicit_name() |
| ! CHECK: fir.call @_QPnobinding_iface_nobinding() |
| end subroutine |