libgfortran: Remove early return if extent is zero [PR112371]

Remove the early return present in function templates for transformational
functions doing a (masked) reduction of an array along a dimension.
This early return, which triggered if the extent in the reduction dimension
was zero, was wrong because even if the reduction operation degenerates to
a constant value in that case, one has to loop anyway along the other
dimensions to initialize every element of the resulting array with that
constant value.  The case of negative extent (not sure whether it may happen
in practice) which was also early returning, is handled by clamping to zero.

The offending piece of code was present in several places, and this removes
them all.  Namely, the impacted m4 files are ifunction.m4 for regular
functions and types, ifunction-s.m4 for character minloc and maxloc, and
ifunction-s2.m4 for character minval and maxval.

	PR fortran/112371

libgfortran/ChangeLog:

	* m4/ifunction.m4 (START_MASKED_ARRAY_FUNCTION): Remove early return if
	extent is zero or less, and clamp negative value to zero.
	* m4/ifunction-s.m4 (START_MASKED_ARRAY_FUNCTION): Ditto.
	* m4/ifunction-s2.m4 (START_MASKED_ARRAY_FUNCTION): Ditto.
	* generated/iall_i1.c: Regenerate.
	* generated/iall_i16.c: Regenerate.
	* generated/iall_i2.c: Regenerate.
	* generated/iall_i4.c: Regenerate.
	* generated/iall_i8.c: Regenerate.
	* generated/iany_i1.c: Regenerate.
	* generated/iany_i16.c: Regenerate.
	* generated/iany_i2.c: Regenerate.
	* generated/iany_i4.c: Regenerate.
	* generated/iany_i8.c: Regenerate.
	* generated/iparity_i1.c: Regenerate.
	* generated/iparity_i16.c: Regenerate.
	* generated/iparity_i2.c: Regenerate.
	* generated/iparity_i4.c: Regenerate.
	* generated/iparity_i8.c: Regenerate.
	* generated/maxloc1_16_i1.c: Regenerate.
	* generated/maxloc1_16_i16.c: Regenerate.
	* generated/maxloc1_16_i2.c: Regenerate.
	* generated/maxloc1_16_i4.c: Regenerate.
	* generated/maxloc1_16_i8.c: Regenerate.
	* generated/maxloc1_16_r10.c: Regenerate.
	* generated/maxloc1_16_r16.c: Regenerate.
	* generated/maxloc1_16_r17.c: Regenerate.
	* generated/maxloc1_16_r4.c: Regenerate.
	* generated/maxloc1_16_r8.c: Regenerate.
	* generated/maxloc1_16_s1.c: Regenerate.
	* generated/maxloc1_16_s4.c: Regenerate.
	* generated/maxloc1_4_i1.c: Regenerate.
	* generated/maxloc1_4_i16.c: Regenerate.
	* generated/maxloc1_4_i2.c: Regenerate.
	* generated/maxloc1_4_i4.c: Regenerate.
	* generated/maxloc1_4_i8.c: Regenerate.
	* generated/maxloc1_4_r10.c: Regenerate.
	* generated/maxloc1_4_r16.c: Regenerate.
	* generated/maxloc1_4_r17.c: Regenerate.
	* generated/maxloc1_4_r4.c: Regenerate.
	* generated/maxloc1_4_r8.c: Regenerate.
	* generated/maxloc1_4_s1.c: Regenerate.
	* generated/maxloc1_4_s4.c: Regenerate.
	* generated/maxloc1_8_i1.c: Regenerate.
	* generated/maxloc1_8_i16.c: Regenerate.
	* generated/maxloc1_8_i2.c: Regenerate.
	* generated/maxloc1_8_i4.c: Regenerate.
	* generated/maxloc1_8_i8.c: Regenerate.
	* generated/maxloc1_8_r10.c: Regenerate.
	* generated/maxloc1_8_r16.c: Regenerate.
	* generated/maxloc1_8_r17.c: Regenerate.
	* generated/maxloc1_8_r4.c: Regenerate.
	* generated/maxloc1_8_r8.c: Regenerate.
	* generated/maxloc1_8_s1.c: Regenerate.
	* generated/maxloc1_8_s4.c: Regenerate.
	* generated/maxval1_s1.c: Regenerate.
	* generated/maxval1_s4.c: Regenerate.
	* generated/maxval_i1.c: Regenerate.
	* generated/maxval_i16.c: Regenerate.
	* generated/maxval_i2.c: Regenerate.
	* generated/maxval_i4.c: Regenerate.
	* generated/maxval_i8.c: Regenerate.
	* generated/maxval_r10.c: Regenerate.
	* generated/maxval_r16.c: Regenerate.
	* generated/maxval_r17.c: Regenerate.
	* generated/maxval_r4.c: Regenerate.
	* generated/maxval_r8.c: Regenerate.
	* generated/minloc1_16_i1.c: Regenerate.
	* generated/minloc1_16_i16.c: Regenerate.
	* generated/minloc1_16_i2.c: Regenerate.
	* generated/minloc1_16_i4.c: Regenerate.
	* generated/minloc1_16_i8.c: Regenerate.
	* generated/minloc1_16_r10.c: Regenerate.
	* generated/minloc1_16_r16.c: Regenerate.
	* generated/minloc1_16_r17.c: Regenerate.
	* generated/minloc1_16_r4.c: Regenerate.
	* generated/minloc1_16_r8.c: Regenerate.
	* generated/minloc1_16_s1.c: Regenerate.
	* generated/minloc1_16_s4.c: Regenerate.
	* generated/minloc1_4_i1.c: Regenerate.
	* generated/minloc1_4_i16.c: Regenerate.
	* generated/minloc1_4_i2.c: Regenerate.
	* generated/minloc1_4_i4.c: Regenerate.
	* generated/minloc1_4_i8.c: Regenerate.
	* generated/minloc1_4_r10.c: Regenerate.
	* generated/minloc1_4_r16.c: Regenerate.
	* generated/minloc1_4_r17.c: Regenerate.
	* generated/minloc1_4_r4.c: Regenerate.
	* generated/minloc1_4_r8.c: Regenerate.
	* generated/minloc1_4_s1.c: Regenerate.
	* generated/minloc1_4_s4.c: Regenerate.
	* generated/minloc1_8_i1.c: Regenerate.
	* generated/minloc1_8_i16.c: Regenerate.
	* generated/minloc1_8_i2.c: Regenerate.
	* generated/minloc1_8_i4.c: Regenerate.
	* generated/minloc1_8_i8.c: Regenerate.
	* generated/minloc1_8_r10.c: Regenerate.
	* generated/minloc1_8_r16.c: Regenerate.
	* generated/minloc1_8_r17.c: Regenerate.
	* generated/minloc1_8_r4.c: Regenerate.
	* generated/minloc1_8_r8.c: Regenerate.
	* generated/minloc1_8_s1.c: Regenerate.
	* generated/minloc1_8_s4.c: Regenerate.
	* generated/minval1_s1.c: Regenerate.
	* generated/minval1_s4.c: Regenerate.
	* generated/minval_i1.c: Regenerate.
	* generated/minval_i16.c: Regenerate.
	* generated/minval_i2.c: Regenerate.
	* generated/minval_i4.c: Regenerate.
	* generated/minval_i8.c: Regenerate.
	* generated/minval_r10.c: Regenerate.
	* generated/minval_r16.c: Regenerate.
	* generated/minval_r17.c: Regenerate.
	* generated/minval_r4.c: Regenerate.
	* generated/minval_r8.c: Regenerate.
	* generated/product_c10.c: Regenerate.
	* generated/product_c16.c: Regenerate.
	* generated/product_c17.c: Regenerate.
	* generated/product_c4.c: Regenerate.
	* generated/product_c8.c: Regenerate.
	* generated/product_i1.c: Regenerate.
	* generated/product_i16.c: Regenerate.
	* generated/product_i2.c: Regenerate.
	* generated/product_i4.c: Regenerate.
	* generated/product_i8.c: Regenerate.
	* generated/product_r10.c: Regenerate.
	* generated/product_r16.c: Regenerate.
	* generated/product_r17.c: Regenerate.
	* generated/product_r4.c: Regenerate.
	* generated/product_r8.c: Regenerate.
	* generated/sum_c10.c: Regenerate.
	* generated/sum_c16.c: Regenerate.
	* generated/sum_c17.c: Regenerate.
	* generated/sum_c4.c: Regenerate.
	* generated/sum_c8.c: Regenerate.
	* generated/sum_i1.c: Regenerate.
	* generated/sum_i16.c: Regenerate.
	* generated/sum_i2.c: Regenerate.
	* generated/sum_i4.c: Regenerate.
	* generated/sum_i8.c: Regenerate.
	* generated/sum_r10.c: Regenerate.
	* generated/sum_r16.c: Regenerate.
	* generated/sum_r17.c: Regenerate.
	* generated/sum_r4.c: Regenerate.
	* generated/sum_r8.c: Regenerate.

gcc/testsuite/ChangeLog:

	* gfortran.dg/bound_10.f90: New test.
This commit is contained in:
Mikael Morin 2023-11-07 11:24:03 +01:00
parent d56bf41945
commit 85a9688180
145 changed files with 495 additions and 288 deletions

View File

@ -0,0 +1,207 @@
! { dg-do run }
!
! PR fortran/112371
! The library used to not set the bounds and content of the resulting array
! of a reduction function if the input array had zero extent along the
! reduction dimension.
program p
implicit none
call check_iall
call check_iany
call check_iparity
call check_minloc_int
call check_minloc_char
call check_maxloc_real
call check_maxloc_char
call check_minval_int
call check_minval_char
call check_maxval_real
call check_maxval_char
call check_sum
call check_product
contains
subroutine check_iall
integer :: a(3,0,2)
logical(kind=1) :: m(3,0,2)
integer :: i
integer, allocatable :: r(:,:)
a = reshape((/ integer:: /), shape(a))
m = reshape((/ logical(kind=1):: /), shape(m))
i = 2
r = iall(a, dim=i, mask=m)
if (any(lbound(r) /= 1)) stop 11
if (any(ubound(r) /= (/ 3, 2 /))) stop 12
if (any(shape(r) /= (/ 3, 2 /))) stop 13
if (any(r /= int(z'FFFFFFFF'))) stop 14
end subroutine
subroutine check_iany
integer(kind=8) :: a(2,3,0)
logical(kind=1) :: m(2,3,0)
integer :: i
integer(kind=8), allocatable :: r(:,:)
a = reshape((/ integer(kind=8):: /), shape(a))
m = reshape((/ logical(kind=1):: /), shape(m))
i = 3
r = iany(a, dim=i, mask=m)
if (any(lbound(r) /= 1)) stop 21
if (any(ubound(r) /= (/ 2, 3 /))) stop 22
if (any(shape(r) /= (/ 2, 3 /))) stop 23
if (any(r /= 0)) stop 24
end subroutine
subroutine check_iparity
integer(kind=2) :: a(0,2,3)
logical(kind=1) :: m(0,2,3)
integer :: i
integer, allocatable :: r(:,:)
a = reshape((/ integer(kind=2):: /), shape(a))
m = reshape((/ logical(kind=1):: /), shape(m))
i = 1
r = iparity(a, dim=i, mask=m)
if (any(lbound(r) /= 1)) stop 31
if (any(ubound(r) /= (/ 2, 3 /))) stop 32
if (any(shape(r) /= (/ 2, 3 /))) stop 33
if (any(r /= 0)) stop 34
end subroutine
subroutine check_minloc_int
integer :: a(3,0,2)
logical(kind=1) :: m(3,0,2)
integer :: i, j
integer, allocatable :: r(:,:)
a = reshape((/ integer:: /), shape(a))
m = reshape((/ logical(kind=1):: /), shape(m))
i = 2
r = minloc(a, dim=i, mask=m)
if (any(lbound(r) /= 1)) stop 41
if (any(ubound(r) /= (/ 3, 2 /))) stop 42
if (any(shape(r) /= (/ 3, 2 /))) stop 43
if (any(r /= 0)) stop 44
end subroutine
subroutine check_minloc_char
character :: a(2,3,0)
logical(kind=1) :: m(2,3,0)
integer :: i
integer, allocatable :: r(:,:)
a = reshape((/ character:: /), shape(a))
m = reshape((/ logical(kind=1):: /), shape(m))
i = 3
r = minloc(a, dim=i, mask=m)
if (any(lbound(r) /= 1)) stop 51
if (any(ubound(r) /= (/ 2, 3 /))) stop 52
if (any(shape(r) /= (/ 2, 3 /))) stop 53
if (any(r /= 0)) stop 54
end subroutine
subroutine check_maxloc_real
real :: a(0,2,3)
logical(kind=1) :: m(0,2,3)
integer :: i
integer, allocatable :: r(:,:)
a = reshape((/ real:: /), shape(a))
m = reshape((/ logical(kind=1):: /), shape(m))
i = 1
r = maxloc(a, dim=i, mask=m)
if (any(lbound(r) /= 1)) stop 61
if (any(ubound(r) /= (/ 2, 3 /))) stop 62
if (any(shape(r) /= (/ 2, 3 /))) stop 63
if (any(r /= 0)) stop 64
end subroutine
subroutine check_maxloc_char
character(len=2) :: a(3,0,2)
logical(kind=1) :: m(3,0,2)
integer :: i
integer, allocatable :: r(:,:)
a = reshape((/ character(len=2):: /), shape(a))
m = reshape((/ logical(kind=1):: /), shape(m))
i = 2
r = maxloc(a, dim=i, mask=m)
if (any(lbound(r) /= 1)) stop 71
if (any(ubound(r) /= (/ 3, 2 /))) stop 72
if (any(shape(r) /= (/ 3, 2 /))) stop 73
if (any(r /= 0)) stop 74
end subroutine
subroutine check_minval_int
integer(kind=2) :: a(3,2,0)
logical(kind=1) :: m(3,2,0)
integer :: i, j
integer, allocatable :: r(:,:)
a = reshape((/ integer(kind=2):: /), shape(a))
m = reshape((/ logical(kind=1):: /), shape(m))
i = 3
r = minval(a, dim=i, mask=m)
if (any(lbound(r) /= 1)) stop 81
if (any(ubound(r) /= (/ 3, 2 /))) stop 82
if (any(shape(r) /= (/ 3, 2 /))) stop 83
if (any(r /= huge(1_2))) stop 84
end subroutine
subroutine check_minval_char
character(kind=4) :: a(0,3,2)
logical(kind=1) :: m(0,3,2)
integer :: i
character(kind=4), allocatable :: r(:,:)
a = reshape((/ character(kind=4):: /), shape(a))
m = reshape((/ logical(kind=1):: /), shape(m))
i = 1
r = minval(a, dim=i, mask=m)
if (any(lbound(r) /= 1)) stop 91
if (any(ubound(r) /= (/ 3, 2 /))) stop 92
if (any(shape(r) /= (/ 3, 2 /))) stop 93
if (any(r /= char(int(z'FFFFFFFF', kind=8), kind=4))) stop 94
end subroutine
subroutine check_maxval_real
real(kind=8) :: a(0,2,3)
logical(kind=1) :: m(0,2,3)
integer :: i
real(kind=8), allocatable :: r(:,:)
a = reshape((/ real(kind=8):: /), shape(a))
m = reshape((/ logical(kind=1):: /), shape(m))
i = 1
r = maxval(a, dim=i, mask=m)
if (any(lbound(r) /= 1)) stop 101
if (any(ubound(r) /= (/ 2, 3 /))) stop 102
if (any(shape(r) /= (/ 2, 3 /))) stop 103
if (any(r /= -huge(1._8))) stop 104
end subroutine
subroutine check_maxval_char
character(kind=4,len=2) :: a(3,0,2), e
logical(kind=1) :: m(3,0,2)
integer :: i
character(len=2,kind=4), allocatable :: r(:,:)
a = reshape((/ character(kind=4,len=2):: /), shape(a))
m = reshape((/ logical(kind=1):: /), shape(m))
i = 2
r = maxval(a, dim=i, mask=m)
if (any(lbound(r) /= 1)) stop 111
if (any(ubound(r) /= (/ 3, 2 /))) stop 112
if (any(shape(r) /= (/ 3, 2 /))) stop 113
e = repeat(char(0, kind=4), len(a))
if (any(r /= e)) stop 114
end subroutine
subroutine check_sum
integer(kind=1) :: a(2,3,0)
logical(kind=1) :: m(2,3,0)
integer :: i
integer, allocatable :: r(:,:)
a = reshape((/ integer:: /), shape(a))
m = reshape((/ logical(kind=1):: /), shape(m))
i = 3
r = sum(a, dim=i, mask=m)
if (any(lbound(r) /= 1)) stop 121
if (any(ubound(r) /= (/ 2, 3 /))) stop 122
if (any(shape(r) /= (/ 2, 3 /))) stop 123
if (any(r /= 0)) stop 124
end subroutine
subroutine check_product
real(kind=8) :: a(0,2,3)
logical(kind=1) :: m(0,2,3)
integer :: i
integer, allocatable :: r(:,:)
a = reshape((/ real(kind=8):: /), shape(a))
m = reshape((/ logical(kind=1):: /), shape(m))
i = 1
r = product(a, dim=i, mask=m)
if (any(lbound(r) /= 1)) stop 131
if (any(ubound(r) /= (/ 2, 3 /))) stop 132
if (any(shape(r) /= (/ 2, 3 /))) stop 133
if (any(r /= 1.0_8)) stop 134
end subroutine
end program

View File

@ -242,8 +242,8 @@ miall_i1 (gfc_array_i1 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -242,8 +242,8 @@ miall_i16 (gfc_array_i16 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -242,8 +242,8 @@ miall_i2 (gfc_array_i2 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -242,8 +242,8 @@ miall_i4 (gfc_array_i4 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -242,8 +242,8 @@ miall_i8 (gfc_array_i8 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -242,8 +242,8 @@ miany_i1 (gfc_array_i1 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -242,8 +242,8 @@ miany_i16 (gfc_array_i16 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -242,8 +242,8 @@ miany_i2 (gfc_array_i2 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -242,8 +242,8 @@ miany_i4 (gfc_array_i4 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -242,8 +242,8 @@ miany_i8 (gfc_array_i8 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -242,8 +242,8 @@ miparity_i1 (gfc_array_i1 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -242,8 +242,8 @@ miparity_i16 (gfc_array_i16 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -242,8 +242,8 @@ miparity_i2 (gfc_array_i2 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -242,8 +242,8 @@ miparity_i4 (gfc_array_i4 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -242,8 +242,8 @@ miparity_i8 (gfc_array_i8 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -270,8 +270,8 @@ mmaxloc1_16_i1 (gfc_array_i16 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -270,8 +270,8 @@ mmaxloc1_16_i16 (gfc_array_i16 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -270,8 +270,8 @@ mmaxloc1_16_i2 (gfc_array_i16 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -270,8 +270,8 @@ mmaxloc1_16_i4 (gfc_array_i16 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -270,8 +270,8 @@ mmaxloc1_16_i8 (gfc_array_i16 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -270,8 +270,8 @@ mmaxloc1_16_r10 (gfc_array_i16 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -270,8 +270,8 @@ mmaxloc1_16_r16 (gfc_array_i16 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -270,8 +270,8 @@ mmaxloc1_16_r17 (gfc_array_i16 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -270,8 +270,8 @@ mmaxloc1_16_r4 (gfc_array_i16 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -270,8 +270,8 @@ mmaxloc1_16_r8 (gfc_array_i16 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -263,8 +263,8 @@ mmaxloc1_16_s1 (gfc_array_i16 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -263,8 +263,8 @@ mmaxloc1_16_s4 (gfc_array_i16 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -270,8 +270,8 @@ mmaxloc1_4_i1 (gfc_array_i4 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -270,8 +270,8 @@ mmaxloc1_4_i16 (gfc_array_i4 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -270,8 +270,8 @@ mmaxloc1_4_i2 (gfc_array_i4 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -270,8 +270,8 @@ mmaxloc1_4_i4 (gfc_array_i4 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -270,8 +270,8 @@ mmaxloc1_4_i8 (gfc_array_i4 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -270,8 +270,8 @@ mmaxloc1_4_r10 (gfc_array_i4 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -270,8 +270,8 @@ mmaxloc1_4_r16 (gfc_array_i4 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -270,8 +270,8 @@ mmaxloc1_4_r17 (gfc_array_i4 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -270,8 +270,8 @@ mmaxloc1_4_r4 (gfc_array_i4 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -270,8 +270,8 @@ mmaxloc1_4_r8 (gfc_array_i4 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -263,8 +263,8 @@ mmaxloc1_4_s1 (gfc_array_i4 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -263,8 +263,8 @@ mmaxloc1_4_s4 (gfc_array_i4 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -270,8 +270,8 @@ mmaxloc1_8_i1 (gfc_array_i8 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -270,8 +270,8 @@ mmaxloc1_8_i16 (gfc_array_i8 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -270,8 +270,8 @@ mmaxloc1_8_i2 (gfc_array_i8 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -270,8 +270,8 @@ mmaxloc1_8_i4 (gfc_array_i8 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -270,8 +270,8 @@ mmaxloc1_8_i8 (gfc_array_i8 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -270,8 +270,8 @@ mmaxloc1_8_r10 (gfc_array_i8 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -270,8 +270,8 @@ mmaxloc1_8_r16 (gfc_array_i8 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -270,8 +270,8 @@ mmaxloc1_8_r17 (gfc_array_i8 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -270,8 +270,8 @@ mmaxloc1_8_r4 (gfc_array_i8 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -270,8 +270,8 @@ mmaxloc1_8_r8 (gfc_array_i8 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -263,8 +263,8 @@ mmaxloc1_8_s1 (gfc_array_i8 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -263,8 +263,8 @@ mmaxloc1_8_s4 (gfc_array_i8 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -258,8 +258,8 @@ mmaxval1_s1 (gfc_array_s1 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -258,8 +258,8 @@ mmaxval1_s4 (gfc_array_s4 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -256,8 +256,8 @@ mmaxval_i1 (gfc_array_i1 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -256,8 +256,8 @@ mmaxval_i16 (gfc_array_i16 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -256,8 +256,8 @@ mmaxval_i2 (gfc_array_i2 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -256,8 +256,8 @@ mmaxval_i4 (gfc_array_i4 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -256,8 +256,8 @@ mmaxval_i8 (gfc_array_i8 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -256,8 +256,8 @@ mmaxval_r10 (gfc_array_r10 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -256,8 +256,8 @@ mmaxval_r16 (gfc_array_r16 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -256,8 +256,8 @@ mmaxval_r17 (gfc_array_r17 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -256,8 +256,8 @@ mmaxval_r4 (gfc_array_r4 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -256,8 +256,8 @@ mmaxval_r8 (gfc_array_r8 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -280,8 +280,8 @@ mminloc1_16_i1 (gfc_array_i16 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -280,8 +280,8 @@ mminloc1_16_i16 (gfc_array_i16 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -280,8 +280,8 @@ mminloc1_16_i2 (gfc_array_i16 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -280,8 +280,8 @@ mminloc1_16_i4 (gfc_array_i16 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -280,8 +280,8 @@ mminloc1_16_i8 (gfc_array_i16 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -280,8 +280,8 @@ mminloc1_16_r10 (gfc_array_i16 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -280,8 +280,8 @@ mminloc1_16_r16 (gfc_array_i16 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -280,8 +280,8 @@ mminloc1_16_r17 (gfc_array_i16 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -280,8 +280,8 @@ mminloc1_16_r4 (gfc_array_i16 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -280,8 +280,8 @@ mminloc1_16_r8 (gfc_array_i16 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -263,8 +263,8 @@ mminloc1_16_s1 (gfc_array_i16 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -263,8 +263,8 @@ mminloc1_16_s4 (gfc_array_i16 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -280,8 +280,8 @@ mminloc1_4_i1 (gfc_array_i4 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -280,8 +280,8 @@ mminloc1_4_i16 (gfc_array_i4 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -280,8 +280,8 @@ mminloc1_4_i2 (gfc_array_i4 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -280,8 +280,8 @@ mminloc1_4_i4 (gfc_array_i4 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -280,8 +280,8 @@ mminloc1_4_i8 (gfc_array_i4 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -280,8 +280,8 @@ mminloc1_4_r10 (gfc_array_i4 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -280,8 +280,8 @@ mminloc1_4_r16 (gfc_array_i4 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -280,8 +280,8 @@ mminloc1_4_r17 (gfc_array_i4 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -280,8 +280,8 @@ mminloc1_4_r4 (gfc_array_i4 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -280,8 +280,8 @@ mminloc1_4_r8 (gfc_array_i4 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -263,8 +263,8 @@ mminloc1_4_s1 (gfc_array_i4 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -263,8 +263,8 @@ mminloc1_4_s4 (gfc_array_i4 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -280,8 +280,8 @@ mminloc1_8_i1 (gfc_array_i8 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -280,8 +280,8 @@ mminloc1_8_i16 (gfc_array_i8 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -280,8 +280,8 @@ mminloc1_8_i2 (gfc_array_i8 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -280,8 +280,8 @@ mminloc1_8_i4 (gfc_array_i8 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -280,8 +280,8 @@ mminloc1_8_i8 (gfc_array_i8 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -280,8 +280,8 @@ mminloc1_8_r10 (gfc_array_i8 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -280,8 +280,8 @@ mminloc1_8_r16 (gfc_array_i8 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -280,8 +280,8 @@ mminloc1_8_r17 (gfc_array_i8 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -280,8 +280,8 @@ mminloc1_8_r4 (gfc_array_i8 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -280,8 +280,8 @@ mminloc1_8_r8 (gfc_array_i8 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -263,8 +263,8 @@ mminloc1_8_s1 (gfc_array_i8 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

View File

@ -263,8 +263,8 @@ mminloc1_8_s4 (gfc_array_i8 * const restrict retarray,
}
len = GFC_DESCRIPTOR_EXTENT(array,dim);
if (len <= 0)
return;
if (len < 0)
len = 0;
mbase = mask->base_addr;

Some files were not shown because too many files have changed in this diff Show More