! RUN: %flang_fc1 -fdebug-dump-symbols -fopenmp -fopenmp-version=50 %s | FileCheck %s module mm implicit none type logicalwrapper logical b end type logicalwrapper contains !CHECK-LABEL: Subprogram scope: func function func(x, n) logical func integer :: n type(logicalwrapper) :: x(n) type(logicalwrapper) :: res integer :: i !$omp declare reduction(.AND.:type(logicalwrapper):omp_out%b=omp_out%b .AND. omp_in%b) initializer(omp_priv%b=.true.) !CHECK: op.AND: UserReductionDetails TYPE(logicalwrapper) !CHECK OtherConstruct scope !CHECK: omp_in size=4 offset=0: ObjectEntity type: TYPE(logicalwrapper) !CHECK: omp_out size=4 offset=4: ObjectEntity type: TYPE(logicalwrapper) !CHECK OtherConstruct scope !CHECK: omp_orig size=4 offset=0: ObjectEntity type: TYPE(logicalwrapper) !CHECK: omp_priv size=4 offset=4: ObjectEntity type: TYPE(logicalwrapper) !$omp simd reduction(.AND.:res) do i=1,n res%b=res%b .and. x(i)%b enddo func=res%b end function func end module mm