Hi Jakub, thanks a lot for fixing this. Since it's a regression and the fix is so trivial, I hope you're willing to backport it to the 6 and 7 branches as well? (If not, I can also take care of that.)
Cheers, Janus 2017-11-24 22:42 GMT+01:00 Jakub Jelinek <ja...@redhat.com>: > Hi! > > gfc_trans_omp_array_reduction_or_udr creates artificial intrinsics symbol > just for the purpose of expansion of array min/max reductions. > That is something we certainly don't want a -Wsurprising warning on. > > Fixed thusly, bootstrapped/regtested on x86_64-linux and i686-linux, > committed to trunk. > > 2017-11-24 Jakub Jelinek <ja...@redhat.com> > > PR fortran/81304 > * trans-openmp.c (gfc_trans_omp_array_reduction_or_udr): Set > attr.implicit_type in intrinsic_sym to avoid undesirable warning. > > * testsuite/libgomp.fortran/pr81304.f90: New test. > > --- gcc/fortran/trans-openmp.c.jj 2017-11-08 16:19:36.000000000 +0100 > +++ gcc/fortran/trans-openmp.c 2017-11-24 13:41:41.995610897 +0100 > @@ -1623,6 +1623,7 @@ gfc_trans_omp_array_reduction_or_udr (tr > intrinsic_sym.attr.referenced = 1; > intrinsic_sym.attr.intrinsic = 1; > intrinsic_sym.attr.function = 1; > + intrinsic_sym.attr.implicit_type = 1; > intrinsic_sym.result = &intrinsic_sym; > intrinsic_sym.declared_at = where; > > --- libgomp/testsuite/libgomp.fortran/pr81304.f90.jj 2017-11-24 > 13:50:39.668043753 +0100 > +++ libgomp/testsuite/libgomp.fortran/pr81304.f90 2017-11-24 > 13:50:11.000000000 +0100 > @@ -0,0 +1,17 @@ > +! PR fortran/81304 > +! { dg-do run } > +! { dg-options "-Wsurprising" } > + > +program pr81304 > + integer :: i > + real, dimension(1:3) :: a, b, c > + a = 128 > + b = 0 > +!$omp parallel do reduction(min: a) reduction(max: b) private (c) ! { > dg-bogus "Type specified for intrinsic function" } > + do i = 1, 16 > + c = (/ i, i - 5, i + 5 /) > + a = min (a, c) > + b = max (b, c) > + end do > + if (any (a /= (/ 1, -4, 6 /)) .or. any (b /= (/ 16, 11, 21 /))) call abort > +end > > Jakub