[PATCH] Add support for OpenMP fortran user defined reductions

Andreas Schwab schwab@linux-m68k.org
Sat Jun 7 08:11:00 GMT 2014


Jakub Jelinek <jakub@redhat.com> writes:

> --- gcc/testsuite/gfortran.dg/gomp/udr6.f90.jj	2014-06-02 10:49:02.674337338 +0200
> +++ gcc/testsuite/gfortran.dg/gomp/udr6.f90	2014-06-02 15:40:52.664740529 +0200
> @@ -0,0 +1,205 @@
> +! { dg-do compile }
> +! { dg-options "-fmax-errors=1000 -fopenmp -ffree-line-length-160" }
> +
> +module udr6
> +  type dt
> +    integer :: i
> +  end type
> +end module udr6
> +subroutine f1
> +  use udr6, only : dt
> +!$omp declare reduction (+:integer:omp_out = omp_out + omp_in) ! { dg-error "Redefinition of predefined" }
> +!$omp declare reduction (+:real(kind=4):omp_out = omp_out + omp_in) ! { dg-error "Redefinition of predefined" }
> +!$omp declare reduction (+:double precision:omp_out = omp_out + omp_in) ! { dg-error "Redefinition of predefined" }
> +!$omp declare reduction (+:integer(kind=8),integer(kind=1) & ! { dg-error "Redefinition of predefined" }
> +!$omp & :omp_out = omp_out + omp_in)
> +!$omp declare reduction (+:complex:omp_out = omp_out + omp_in) ! { dg-error "Redefinition of predefined" }
> +!$omp declare reduction (+:complex(kind=16):omp_out = omp_out + omp_in) ! { dg-error "Redefinition of predefined" }

udr6.f90:17:42: Error: Kind 16 not supported for type COMPLEX at (1)
udr6.f90:41:42: Error: Kind 16 not supported for type COMPLEX at (1)
udr6.f90:58:42: Error: Kind 16 not supported for type COMPLEX at (1)

Andreas.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."



More information about the Gcc-patches mailing list