! Regression test for crash compiling privatizer for a pointer to an array. ! The crash was because the fir.embox was not given a shape but it needs one. !RUN: %flang_fc1 -emit-hlfir -fopenmp %s -o - | FileCheck %s ! ALLOCATABLE case (2nd subroutine) !CHECK-LABEL: omp.private {type = firstprivate} !CHECK-SAME: @{{.*}} : !fir.box>>> init { !CHECK: if %{{.*}} { !CHECK: %[[SHAPE:.*]] = fir.shape !CHECK: %[[BOX:.*]] = fir.embox %{{.*}}(%[[SHAPE]]) !CHECK: } else { ! POINTER case (1st subroutine) !CHECK-LABEL: omp.private {type = firstprivate} !CHECK-SAME: @{{.*}} : !fir.box>>> init { !CHECK: %[[SHAPE:.*]] = fir.shape !CHECK: %[[ADDR:.*]] = fir.zero_bits !CHECK: %[[BOX:.*]] = fir.embox %[[ADDR]](%[[SHAPE]]) subroutine pointer_to_array_derived type t integer :: i end type type(t), pointer :: a(:) allocate(a(1)) a(1)%i = 2 !$omp parallel firstprivate(a) if (a(1)%i/=2) stop 2 !$omp end parallel end subroutine subroutine allocatable_array_derived type t integer :: i end type type(t), allocatable :: a(:) allocate(a(1)) a(1)%i = 2 !$omp parallel firstprivate(a) if (a(1)%i/=2) stop 2 !$omp end parallel end subroutine