| ! { dg-do compile } |
| ! |
| ! PR fortran/32467 |
| ! Derived types with allocatable components |
| ! |
| |
| MODULE test_allocatable_components |
| type :: t |
| integer, allocatable :: a(:) |
| end type |
| |
| CONTAINS |
| SUBROUTINE test_copyin() |
| TYPE(t), SAVE :: a |
| |
| !$omp threadprivate(a) |
| !$omp parallel copyin(a) |
| ! do something |
| !$omp end parallel |
| END SUBROUTINE |
| |
| SUBROUTINE test_copyprivate() |
| TYPE(t) :: a |
| |
| !$omp single |
| ! do something |
| !$omp end single copyprivate (a) |
| END SUBROUTINE |
| |
| SUBROUTINE test_firstprivate |
| TYPE(t) :: a |
| |
| !$omp parallel firstprivate(a) |
| ! do something |
| !$omp end parallel |
| END SUBROUTINE |
| |
| SUBROUTINE test_lastprivate |
| TYPE(t) :: a |
| INTEGER :: i |
| |
| !$omp parallel do lastprivate(a) |
| DO i = 1, 1 |
| END DO |
| !$omp end parallel do |
| END SUBROUTINE |
| |
| SUBROUTINE test_reduction |
| TYPE(t) :: a(10) |
| INTEGER :: i |
| |
| !$omp parallel do reduction(+: a) ! { dg-error "OMP DECLARE REDUCTION\[^\n\r\]*not found for type" } |
| DO i = 1, SIZE(a) |
| END DO |
| !$omp end parallel do |
| END SUBROUTINE |
| END MODULE |