backport: re PR fortran/81304 (Bogus warning with -Wsurprising and -fopenmp: Type specified for intrinsic function 'min' / 'max')

Backported from mainline
	2017-11-24  Jakub Jelinek  <jakub@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.

From-SVN: r255716
This commit is contained in:
Jakub Jelinek 2017-12-15 23:00:48 +01:00
parent e57525d514
commit 88b712c241
5 changed files with 32 additions and 3 deletions

View File

@ -1,6 +1,12 @@
2017-12-15 Jakub Jelinek <jakub@redhat.com>
Backported from mainline
2017-11-24 Jakub Jelinek <jakub@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.
2017-11-23 Dirk Broemmel <d.broemmel@fz-juelich.de>
Jakub Jelinek <jakub@redhat.com>

View File

@ -1623,6 +1623,7 @@ gfc_trans_omp_array_reduction_or_udr (tree c, gfc_omp_namelist *n, locus where)
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;

View File

@ -2,7 +2,7 @@
Backported from mainline
2017-11-24 Jakub Jelinek <jakub@redhat.com>
PR sanitizer/83014
* gcc.dg/ubsan/pr83014.c: New test.
@ -338,8 +338,8 @@
2017-10-24 Qing Zhao <qing.zhao@oracle.com>
Wilco Dijkstra <wilco.dijkstra@arm.com>
PR middle-end/80295
* gcc.target/aarch64/pr80295.c: New test.
PR middle-end/80295
* gcc.target/aarch64/pr80295.c: New test.
2017-10-21 Paul Thomas <pault@gcc.gnu.org>

View File

@ -1,6 +1,11 @@
2017-12-15 Jakub Jelinek <jakub@redhat.com>
Backported from mainline
2017-11-24 Jakub Jelinek <jakub@redhat.com>
PR fortran/81304
* testsuite/libgomp.fortran/pr81304.f90: New test.
2017-11-23 Jakub Jelinek <jakub@redhat.com>
PR fortran/81841

View File

@ -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