| ! 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) |