| ! RUN: bbc -emit-fir %s -o - | FileCheck %s |
| |
| ! CHECK-DAG: func.func private @proc1() attributes {fir.bindc_name = "proc1"} |
| module decl1 |
| interface |
| subroutine proc_iface() bind(C) |
| end subroutine proc_iface |
| end interface |
| procedure (proc_iface) PrOc1 |
| end module decl1 |
| subroutine test1(x) |
| use decl1 |
| call PrOc1 |
| end subroutine test1 |
| |
| ! CHECK-DAG: func.func private @proc2() attributes {fir.bindc_name = "proc2"} |
| module decl2 |
| interface |
| subroutine proc_iface() bind(C) |
| end subroutine proc_iface |
| end interface |
| end module decl2 |
| subroutine test2(x) |
| use decl2 |
| procedure (proc_iface) PrOc2 |
| call PrOc2 |
| end subroutine test2 |
| |
| ! CHECK-DAG: func.func private @func3() -> f32 attributes {fir.bindc_name = "func3"} |
| module decl3 |
| interface |
| real function func_iface() bind(C) |
| end function func_iface |
| end interface |
| procedure (func_iface) FuNc3 |
| end module decl3 |
| subroutine test3(x) |
| use decl3 |
| real :: x |
| x = FuNc3() |
| end subroutine test3 |
| |
| ! CHECK-DAG: func.func private @func4() -> f32 attributes {fir.bindc_name = "func4"} |
| module decl4 |
| interface |
| real function func_iface() bind(C) |
| end function func_iface |
| end interface |
| end module decl4 |
| subroutine test4(x) |
| use decl4 |
| procedure (func_iface) FuNc4 |
| real :: x |
| x = FuNc4() |
| end subroutine test4 |
| |