@@ -155,3 +155,32 @@ func.func @_QPtest6(%arg0: !fir.ref<!fir.box<!fir.heap<!fir.array<?x?xi32>>>> {f
155155// CHECK: }
156156// CHECK: return
157157// CHECK: }
158+
159+ func.func @_QQmain() {
160+ return
161+ }
162+
163+ func.func private @_QFPtest7(%arg0: !fir.ref<tuple<!fir.box<!fir.array<2x2xi32>>>> {fir.host_assoc}) attributes {fir.host_symbol = @_QQmain, llvm.linkage = #llvm.linkage<internal>} {
164+ %0 = fir.dummy_scope : !fir.dscope
165+ %c0_i32 = arith.constant 0 : i32
166+ %1 = fir.coordinate_of %arg0, %c0_i32 : (!fir.ref<tuple<!fir.box<!fir.array<2x2xi32>>>>, i32) -> !fir.ref<!fir.box<!fir.array<2x2xi32>>>
167+ %2 = fir.load %1 : !fir.ref<!fir.box<!fir.array<2x2xi32>>>
168+ %3 = fir.box_addr %2 : (!fir.box<!fir.array<2x2xi32>>) -> !fir.ref<!fir.array<2x2xi32>>
169+ %c0 = arith.constant 0 : index
170+ %4:3 = fir.box_dims %2, %c0 : (!fir.box<!fir.array<2x2xi32>>, index) -> (index, index, index)
171+ %c1 = arith.constant 1 : index
172+ %5:3 = fir.box_dims %2, %c1 : (!fir.box<!fir.array<2x2xi32>>, index) -> (index, index, index)
173+ %6 = fir.shape %4#1, %5#1 : (index, index) -> !fir.shape<2>
174+ %7:2 = hlfir.declare %3(%6) {fortran_attrs = #fir.var_attrs<host_assoc>, uniq_name = "_QFEa"} : (!fir.ref<!fir.array<2x2xi32>>, !fir.shape<2>) -> (!fir.ref<!fir.array<2x2xi32>>, !fir.ref<!fir.array<2x2xi32>>)
175+ %c0_i32_0 = arith.constant 0 : i32
176+ hlfir.assign %c0_i32_0 to %7#0 : i32, !fir.ref<!fir.array<2x2xi32>>
177+ return
178+ }
179+
180+ // CHECK-LABEL: func.func private @_QFPtest7({{.*}}) {{.*}} {
181+ // CHECK: %[[VAL_0:.*]] = arith.constant 0 : i32
182+ // CHECK: fir.do_loop %[[VAL_1:.*]] = %{{.*}} to %{{.*}} step %{{.*}} unordered {
183+ // CHECK: %[[VAL_2:.*]] = hlfir.designate %{{.*}} (%[[VAL_1]]) : (!fir.ref<!fir.array<4xi32>>, index) -> !fir.ref<i32>
184+ // CHECK: hlfir.assign %[[VAL_0]] to %[[VAL_2]] : i32, !fir.ref<i32>
185+ // CHECK: }
186+ // CHECK: }
0 commit comments