xref: /llvm-project/flang/test/Lower/variable-inquiries.f90 (revision f35f863a88f83332bef9605ef4cfe4f05c066efb)
199d23934SValentin Clement! Test property inquiries on variables
2*f35f863aSjeanPerier! RUN: bbc -emit-fir -hlfir=false %s -o - | FileCheck %s
399d23934SValentin Clement
499d23934SValentin Clementmodule inquired
599d23934SValentin Clement  real(8), allocatable :: a(:)
699d23934SValentin Clementend module
799d23934SValentin Clement
899d23934SValentin Clement! CHECK-LABEL: @_QPissue844()
999d23934SValentin Clementsubroutine issue844()
1099d23934SValentin Clement  use inquired
1199d23934SValentin Clement  ! Verify that evaluate::DescriptorInquiry are made using the symbol mapped
1299d23934SValentin Clement  ! in lowering (the use associated one, and not directly the ultimate
1399d23934SValentin Clement  ! symbol).
1499d23934SValentin Clement
1599d23934SValentin Clement  ! CHECK: %[[a:.*]] = fir.address_of(@_QMinquiredEa) : !fir.ref<!fir.box<!fir.heap<!fir.array<?xf64>>>>
1699d23934SValentin Clement  ! CHECK: %[[box_load:.*]] = fir.load %[[a]] : !fir.ref<!fir.box<!fir.heap<!fir.array<?xf64>>>>
1799d23934SValentin Clement  ! CHECK: %[[dim:.*]]:3 = fir.box_dims %[[box_load]], %c0{{.*}} : (!fir.box<!fir.heap<!fir.array<?xf64>>>, index) -> (index, index, index)
1899d23934SValentin Clement  ! CHECK: %[[cast:.*]] = fir.convert %[[dim]]#1 : (index) -> i64
194cc9437aSTom Eccles  ! CHECK: fir.call @_FortranAioOutputInteger64(%{{.*}}, %[[cast]]) {{.*}}: (!fir.ref<i8>, i64) -> i1
2099d23934SValentin Clement  print *, size(a, kind=8)
2199d23934SValentin Clementend subroutine
22