56 lines · plain
1! RUN: bbc %s -o "-" -emit-fir | FileCheck %s2 3subroutine sub1(a, b)4 integer, intent(in) :: a5 logical :: b6end7 8! Check that arguments are correctly set and no local allocation is happening.9! CHECK-LABEL: func @_QPsub1(10! CHECK-SAME: %{{.*}}: !fir.ref<i32> {fir.bindc_name = "a"}, %{{.*}}: !fir.ref<!fir.logical<4>> {fir.bindc_name = "b"})11! CHECK-NOT: fir.alloc12! CHECK: return13 14subroutine sub2(i)15 integer :: i(2, 5)16end17 18! CHECK-LABEL: func @_QPsub2(19! CHECK-SAME: %{{.*}}: !fir.ref<!fir.array<2x5xi32>>{{.*}})20 21subroutine sub3(i)22 real :: i(2)23end24 25! CHECK-LABEL: func @_QPsub3(26! CHECK-SAME: %{{.*}}: !fir.ref<!fir.array<2xf32>>{{.*}})27 28integer function fct1(a, b)29 integer, intent(in) :: a30 logical :: b31end32 33! CHECK-LABEL: func @_QPfct1(34! CHECK-SAME: %{{.*}}: !fir.ref<i32> {fir.bindc_name = "a"}, %{{.*}}: !fir.ref<!fir.logical<4>> {fir.bindc_name = "b"}) -> i3235 36real function fct2(i)37 integer :: i(2, 5)38end39 40! CHECK-LABEL: func @_QPfct2(41! CHECK-SAME: %{{.*}}: !fir.ref<!fir.array<2x5xi32>> {fir.bindc_name = "i"}) -> f3242 43function fct3(i)44 real :: i(2)45end46 47! CHECK-LABEL: func @_QPfct3(48! CHECK-SAME: %{{.*}}: !fir.ref<!fir.array<2xf32>> {fir.bindc_name = "i"}) -> f3249 50subroutine allocatable_real(x)51 real, allocatable :: x52end53 54! CHECK-LABEL: func @_QPallocatable_real(55! CHECK-SAME: %{{.*}}: !fir.ref<!fir.box<!fir.heap<f32>>> {fir.bindc_name = "x"}) {56