forked from OSchip/llvm-project
30 lines
924 B
Fortran
30 lines
924 B
Fortran
! Test that logicals are lowered to Fortran logical types where it matters
|
|
! RUN: bbc %s -emit-fir -o - | FileCheck %s
|
|
|
|
! Logicals should be lowered to Fortran logical types in memory/function
|
|
! interfaces.
|
|
|
|
|
|
! CHECK-LABEL: _QPtest_value_arguments
|
|
subroutine test_value_arguments()
|
|
interface
|
|
subroutine foo2(l)
|
|
logical(2) :: l
|
|
end subroutine
|
|
subroutine foo4(l)
|
|
logical(4) :: l
|
|
end subroutine
|
|
end interface
|
|
|
|
! CHECK: %[[true2:.*]] = fir.convert %true{{.*}} : (i1) -> !fir.logical<2>
|
|
! CHECK: fir.store %[[true2]] to %[[mem2:.*]] : !fir.ref<!fir.logical<2>>
|
|
! CHECK: fir.call @_QPfoo2(%[[mem2]]) : (!fir.ref<!fir.logical<2>>) -> ()
|
|
call foo2(.true._2)
|
|
|
|
! CHECK: %[[true4:.*]] = fir.convert %true{{.*}} : (i1) -> !fir.logical<4>
|
|
! CHECK: fir.store %[[true4]] to %[[mem4:.*]] : !fir.ref<!fir.logical<4>>
|
|
! CHECK: fir.call @_QPfoo4(%[[mem4]]) : (!fir.ref<!fir.logical<4>>) -> ()
|
|
call foo4(.true.)
|
|
|
|
end subroutine
|