| ! RUN: bbc -emit-fir %s -o - | FileCheck %s |
| |
| ! Test lowering of non standard features. |
| |
| ! Test mismatch on result type between callee/caller |
| ! CHECK-LABEL: func @_QPexpect_i32 |
| subroutine expect_i32() |
| external :: returns_i32 |
| real(4) :: returns_i32 |
| ! CHECK: %[[funcAddr:.*]] = fir.address_of(@_QPreturns_i32) : () -> i32 |
| ! CHECK: %[[funcCast:.*]] = fir.convert %[[funcAddr]] : (() -> i32) -> (() -> f32) |
| ! CHECK: fir.call %[[funcCast]]() {{.*}}: () -> f32 |
| print *, returns_i32() |
| end subroutine |
| integer(4) function returns_i32() |
| end function |