1! RUN: bbc %s -o - | FileCheck %s 2 3program bar 4! CHECK: fir.address_of(@[[name1:.*]]my_data) 5 integer, save :: my_data = 1 6 print *, my_data 7contains 8 9! CHECK-LABEL: func @_QFPfoo 10subroutine foo() 11! CHECK: fir.address_of(@[[name2:.*foo.*my_data]]) 12 integer, save :: my_data = 2 13 print *, my_data + 1 14end subroutine 15 16! CHECK-LABEL: func @_QFPfoo2 17subroutine foo2() 18! CHECK: fir.address_of(@[[name3:.*foo2.*my_data]]) 19 integer, save :: my_data 20 my_data = 4 21 print *, my_data 22end subroutine 23 24! CHECK-LABEL: func @_QFPfoo3 25subroutine foo3() 26! CHECK-DAG: fir.address_of(@[[name4:.*foo3.*idata]]){{.*}}fir.array<5xi32> 27! CHECK-DAG: fir.address_of(@[[name5:.*foo3.*rdata]]){{.*}}fir.array<3xf16> 28! CHECK-DAG: fir.address_of(@[[name6:.*foo3.*my_data]]){{.*}}fir.array<2x4xi64> 29 integer*4, dimension(5), save :: idata = (/ (i*i, i=1,5) /) 30 integer*8, dimension(2, 10:13), save :: my_data = reshape((/1,2,3,4,5,6,7,8/), shape(my_data)) 31 real*2, dimension(7:9), save :: rdata = (/100., 99., 98./) 32 print *, rdata(9) 33 print *, idata(3) 34 print *, my_data(1,11) 35end subroutine 36end program 37 38! CHECK: fir.global internal @[[name1]] 39! CHECK: fir.global internal @[[name2]] 40! CHECK: fir.global internal @[[name3]] 41! CHECK-DAG: fir.global internal @[[name4]]{{.*}}fir.array<5xi32> 42! CHECK-DAG: fir.global internal @[[name5]]{{.*}}fir.array<3xf16> 43! CHECK-DAG: fir.global internal @[[name6]]{{.*}}fir.array<2x4xi64> 44