brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.3 KiB · a766357 Raw
47 lines · plain
1! RUN: bbc -hlfir=false -o - %s | FileCheck %s2 3module units4  integer, parameter :: preconnected_unit(3) = [0, 5, 6]5contains6  ! CHECK-LABEL: _QMunitsPis_preconnected_unit7  logical function is_preconnected_unit(u)8  ! CHECK: [[units_ssa:%[0-9]+]] = fir.address_of(@_QMunitsECpreconnected_unit) : !fir.ref<!fir.array<3xi32>>9    integer :: u10    integer :: i11    is_preconnected_unit = .true.12    do i = lbound(preconnected_unit,1), ubound(preconnected_unit,1)13      ! CHECK: fir.coordinate_of [[units_ssa]]14      if (preconnected_unit(i) == u) return15    end do16    is_preconnected_unit = .false.17  end function18end module units19 20! CHECK-LABEL: _QPcheck_units21subroutine check_units22  use units23  do i=-1,824    if (is_preconnected_unit(i)) print*, i25  enddo26end27 28! CHECK-LABEL: _QPzero29subroutine zero30  complex, parameter :: a(0) = [(((k,k=1,10),j=-2,2,-1),i=2,-2,-2)]31  complex, parameter :: b(0) = [(7,i=3,-3)]32  ! CHECK: fir.address_of(@_QQro.0xz4.null.0) : !fir.ref<!fir.array<0xcomplex<f32>>>33  ! CHECK-NOT: _QQro34  print*, '>', a, '<'35  print*, '>', b, '<'36end37 38! CHECK-LABEL: _QQmain39program prog40  call check_units41  call zero42end43 44! CHECK: fir.global internal @_QFzeroECa constant : !fir.array<0xcomplex<f32>>45! CHECK:   %0 = fir.undefined !fir.array<0xcomplex<f32>>46! CHECK:   fir.has_value %0 : !fir.array<0xcomplex<f32>>47