! This test checks lowering of OpenACC no_create with an array section. ! RUN: bbc -fopenacc -emit-hlfir %s -o - | FileCheck %s subroutine foo(n) real :: a(n) !$acc parallel no_create(a(11:20)) call bar(a) !$acc end parallel end subroutine ! CHECK-LABEL: func.func @_QPfoo( ! CHECK: %[[SHAPE_0:.*]] = fir.shape ! CHECK: %[[BOUNDS_0:.*]] = acc.bounds ! CHECK: %[[NOCREATE_0:.*]] = acc.nocreate var(%{{.*}} : !fir.box>) bounds(%[[BOUNDS_0]]) -> !fir.box> {name = "a(11:20)"} ! CHECK: acc.parallel dataOperands(%[[NOCREATE_0]] : !fir.box>) { ! CHECK: %[[BOX_ADDR_0:.*]] = fir.box_addr %[[NOCREATE_0]] : (!fir.box>) -> !fir.ref> ! CHECK: %[[DECLARE_2:.*]]:2 = hlfir.declare %[[BOX_ADDR_0]](%[[SHAPE_0]]) {uniq_name = "_QFfooEa"} : (!fir.ref>, !fir.shape<1>) -> (!fir.box>, !fir.ref>) ! CHECK: fir.call @_QPbar(%[[DECLARE_2]]#1) fastmath : (!fir.ref>) -> () ! CHECK: acc.yield ! CHECK: } ! CHECK: acc.delete accVar(%[[NOCREATE_0]] : !fir.box>) bounds(%[[BOUNDS_0]]) {dataClause = #acc, name = "a(11:20)"}