42 lines · plain
1! RUN: bbc -hlfir=false %s -o - | FileCheck %s2 3! CHECK-LABEL: _QQmain4program test15 ! CHECK-DAG: %[[TMP:.*]] = fir.alloca6 ! CHECK-DAG: %[[TEN:.*]] = arith.constant7 ! CHECK: fir.store %[[TEN]] to %[[TMP]]8 ! CHECK-NEXT: fir.call @_QFPfoo9 call foo(10)10contains11 12! CHECK-LABEL: func private @_QFPfoo13subroutine foo(avar1)14 integer :: avar115! integer :: my_data, my_data216! DATA my_data / 150 /17! DATA my_data2 / 150 /18! print *, my_data, my_data219 print *, avar120end subroutine21! CHECK: }22end program test123 24! CHECK-LABEL: func @_QPsub225function sub2(r)26 real :: r(20)27 ! CHECK: %[[coor:.*]] = fir.coordinate_of %arg028 ! CHECK: = fir.call @_QPf(%[[coor]]) {{.*}}: (!fir.ref<f32>) -> f3229 sub2 = f(r(1))30 ! CHECK: return %{{.*}} : f3231end function sub232 33! Test TARGET attribute lowering34! CHECK-LABEL: func @_QPtest_target(35! CHECK-SAME: !fir.ref<i32> {fir.bindc_name = "i", fir.target},36! CHECK-SAME: !fir.box<!fir.array<?xf32>> {fir.bindc_name = "x", fir.target})37subroutine test_target(i, x)38 integer, target :: i39 real, target :: x(:)40 print *, xs, xa41end subroutine42