42 lines
1.1 KiB
Fortran
42 lines
1.1 KiB
Fortran
|
! RUN: bbc -hlfir=false %s -o - | FileCheck %s
|
||
|
|
||
|
! CHECK-LABEL: _QQmain
|
||
|
program test1
|
||
|
! CHECK-DAG: %[[TMP:.*]] = fir.alloca
|
||
|
! CHECK-DAG: %[[TEN:.*]] = arith.constant
|
||
|
! CHECK: fir.store %[[TEN]] to %[[TMP]]
|
||
|
! CHECK-NEXT: fir.call @_QFPfoo
|
||
|
call foo(10)
|
||
|
contains
|
||
|
|
||
|
! CHECK-LABEL: func @_QFPfoo
|
||
|
subroutine foo(avar1)
|
||
|
integer :: avar1
|
||
|
! integer :: my_data, my_data2
|
||
|
! DATA my_data / 150 /
|
||
|
! DATA my_data2 / 150 /
|
||
|
! print *, my_data, my_data2
|
||
|
print *, avar1
|
||
|
end subroutine
|
||
|
! CHECK: }
|
||
|
end program test1
|
||
|
|
||
|
! CHECK-LABEL: func @_QPsub2
|
||
|
function sub2(r)
|
||
|
real :: r(20)
|
||
|
! CHECK: %[[coor:.*]] = fir.coordinate_of %arg0
|
||
|
! CHECK: = fir.call @_QPf(%[[coor]]) {{.*}}: (!fir.ref<f32>) -> f32
|
||
|
sub2 = f(r(1))
|
||
|
! CHECK: return %{{.*}} : f32
|
||
|
end function sub2
|
||
|
|
||
|
! Test TARGET attribute lowering
|
||
|
! CHECK-LABEL: func @_QPtest_target(
|
||
|
! CHECK-SAME: !fir.ref<i32> {fir.bindc_name = "i", fir.target},
|
||
|
! CHECK-SAME: !fir.box<!fir.array<?xf32>> {fir.bindc_name = "x", fir.target})
|
||
|
subroutine test_target(i, x)
|
||
|
integer, target :: i
|
||
|
real, target :: x(:)
|
||
|
print *, xs, xa
|
||
|
end subroutine
|