| ! RUN: %flang_fc1 -fdebug-dump-symbols -fopenmp -fopenmp-version=50 %s | FileCheck %s | |
| module mod | |
| type t | |
| integer::i=0 | |
| end type t | |
| !$omp declare reduction (+:t:omp_out%i=omp_out%i+omp_in%i) & | |
| !$omp initializer(omp_priv%i=0) | |
| end module mod | |
| !CHECK: Module scope: mod | |
| !CHECK: op.+, PUBLIC: UserReductionDetails TYPE(t) | |
| !CHECK: t, PUBLIC: DerivedType components: i | |
| program main | |
| use mod | |
| integer::i | |
| type(t)::x1 | |
| x1%i=0 | |
| !$omp parallel do reduction(+:x1) | |
| do i=1,10 | |
| x1%i=x1%i+1 | |
| end do | |
| !$omp end parallel do | |
| print *,'pass' | |
| end program main | |
| !CHECK: MainProgram scope: MAIN | |
| !CHECK: op.+: Use from op.+ in mod | |
| !CHECK: t: Use from t in mod | |
| !CHECK: x1 size=4 offset=4: ObjectEntity type: TYPE(t) |