mirror of git://gcc.gnu.org/git/gcc.git
re PR libfortran/36773 (zero-sized arrays with cshift and eoshift)
2008-07-21 Thomas Koenig <tkoenig@gcc.gnu.org> PR libfortran/36773 * intrinsics/cshift0.c (cshift0): Return early if size of array is zero. * intrinsics/eoshift0.c (eoshift0): Return early if size of return array is zero. * intrinsics/eoshift2.c (eoshift2): Likewise. * m4/eoshift1.m4 (eoshift1): Return early if size of array is zero. * m4/eoshift3.m4 (eoshift3): Likewise. * m4/eoshift2.m4 (eoshift2): Return early if size of return array is zero. * m4/eoshift4.m4 (eoshift2): Return early if size of return array is zero. * generated/cshift1_16.c: Regenerated. * generated/cshift1_4.c: Regenerated. * generated/cshift1_8.c: Regenerated. * generated/eoshift1_16.c: Regenerated. * generated/eoshift1_4.c: Regenerated. * generated/eoshift1_8.c: Regenerated. * generated/eoshift3_16.c: Regenerated. * generated/eoshift3_4.c: Regenerated. * generated/eoshift3_8.c: Regenerated. 2008-07-21 Thomas Koenig <tkoenig@gcc.gnu.org> PR libfortran/36773 * gfortran.dg/zero_sized_5.f90: New test case. From-SVN: r138027
This commit is contained in:
parent
1bb64668d0
commit
c44109aaf3
|
@ -1,3 +1,8 @@
|
||||||
|
2008-07-21 Thomas Koenig <tkoenig@gcc.gnu.org>
|
||||||
|
|
||||||
|
PR libfortran/36773
|
||||||
|
* gfortran.dg/zero_sized_5.f90: New test case.
|
||||||
|
|
||||||
2008-07-21 Paolo Carlini <paolo.carlini@oracle.com>
|
2008-07-21 Paolo Carlini <paolo.carlini@oracle.com>
|
||||||
|
|
||||||
PR c++/36870
|
PR c++/36870
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
! { dg-do run }
|
||||||
|
! These used to segfault.
|
||||||
|
program main
|
||||||
|
real, dimension(1,0) :: a, b, c
|
||||||
|
integer, dimension(0) :: j
|
||||||
|
a = 0
|
||||||
|
c = 0
|
||||||
|
b = cshift (a,1)
|
||||||
|
b = cshift (a,j)
|
||||||
|
b = eoshift (a,1)
|
||||||
|
b = eoshift (a,(/1/))
|
||||||
|
b = eoshift (a,1,boundary=c(1,:))
|
||||||
|
b = eoshift (a, j, boundary=c(1,:))
|
||||||
|
|
||||||
|
end program main
|
|
@ -1,3 +1,28 @@
|
||||||
|
2008-07-21 Thomas Koenig <tkoenig@gcc.gnu.org>
|
||||||
|
|
||||||
|
PR libfortran/36773
|
||||||
|
* intrinsics/cshift0.c (cshift0): Return early if size of array
|
||||||
|
is zero.
|
||||||
|
* intrinsics/eoshift0.c (eoshift0): Return early if size of
|
||||||
|
return array is zero.
|
||||||
|
* intrinsics/eoshift2.c (eoshift2): Likewise.
|
||||||
|
* m4/eoshift1.m4 (eoshift1): Return early if size of array
|
||||||
|
is zero.
|
||||||
|
* m4/eoshift3.m4 (eoshift3): Likewise.
|
||||||
|
* m4/eoshift2.m4 (eoshift2): Return early if size of return
|
||||||
|
array is zero.
|
||||||
|
* m4/eoshift4.m4 (eoshift2): Return early if size of return
|
||||||
|
array is zero.
|
||||||
|
* generated/cshift1_16.c: Regenerated.
|
||||||
|
* generated/cshift1_4.c: Regenerated.
|
||||||
|
* generated/cshift1_8.c: Regenerated.
|
||||||
|
* generated/eoshift1_16.c: Regenerated.
|
||||||
|
* generated/eoshift1_4.c: Regenerated.
|
||||||
|
* generated/eoshift1_8.c: Regenerated.
|
||||||
|
* generated/eoshift3_16.c: Regenerated.
|
||||||
|
* generated/eoshift3_4.c: Regenerated.
|
||||||
|
* generated/eoshift3_8.c: Regenerated.
|
||||||
|
|
||||||
2008-07-20 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
2008-07-20 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
||||||
|
|
||||||
PR fortran/36857
|
PR fortran/36857
|
||||||
|
|
|
@ -67,6 +67,7 @@ cshift1 (gfc_array_char * const restrict ret,
|
||||||
index_type n;
|
index_type n;
|
||||||
int which;
|
int which;
|
||||||
GFC_INTEGER_16 sh;
|
GFC_INTEGER_16 sh;
|
||||||
|
index_type arraysize;
|
||||||
|
|
||||||
if (pwhich)
|
if (pwhich)
|
||||||
which = *pwhich - 1;
|
which = *pwhich - 1;
|
||||||
|
@ -76,11 +77,13 @@ cshift1 (gfc_array_char * const restrict ret,
|
||||||
if (which < 0 || (which + 1) > GFC_DESCRIPTOR_RANK (array))
|
if (which < 0 || (which + 1) > GFC_DESCRIPTOR_RANK (array))
|
||||||
runtime_error ("Argument 'DIM' is out of range in call to 'CSHIFT'");
|
runtime_error ("Argument 'DIM' is out of range in call to 'CSHIFT'");
|
||||||
|
|
||||||
|
arraysize = size0 ((array_t *)array);
|
||||||
|
|
||||||
if (ret->data == NULL)
|
if (ret->data == NULL)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
ret->data = internal_malloc_size (size * size0 ((array_t *)array));
|
ret->data = internal_malloc_size (size * arraysize);
|
||||||
ret->offset = 0;
|
ret->offset = 0;
|
||||||
ret->dtype = array->dtype;
|
ret->dtype = array->dtype;
|
||||||
for (i = 0; i < GFC_DESCRIPTOR_RANK (array); i++)
|
for (i = 0; i < GFC_DESCRIPTOR_RANK (array); i++)
|
||||||
|
@ -95,6 +98,9 @@ cshift1 (gfc_array_char * const restrict ret,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (arraysize == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
extent[0] = 1;
|
extent[0] = 1;
|
||||||
count[0] = 0;
|
count[0] = 0;
|
||||||
n = 0;
|
n = 0;
|
||||||
|
|
|
@ -67,6 +67,7 @@ cshift1 (gfc_array_char * const restrict ret,
|
||||||
index_type n;
|
index_type n;
|
||||||
int which;
|
int which;
|
||||||
GFC_INTEGER_4 sh;
|
GFC_INTEGER_4 sh;
|
||||||
|
index_type arraysize;
|
||||||
|
|
||||||
if (pwhich)
|
if (pwhich)
|
||||||
which = *pwhich - 1;
|
which = *pwhich - 1;
|
||||||
|
@ -76,11 +77,13 @@ cshift1 (gfc_array_char * const restrict ret,
|
||||||
if (which < 0 || (which + 1) > GFC_DESCRIPTOR_RANK (array))
|
if (which < 0 || (which + 1) > GFC_DESCRIPTOR_RANK (array))
|
||||||
runtime_error ("Argument 'DIM' is out of range in call to 'CSHIFT'");
|
runtime_error ("Argument 'DIM' is out of range in call to 'CSHIFT'");
|
||||||
|
|
||||||
|
arraysize = size0 ((array_t *)array);
|
||||||
|
|
||||||
if (ret->data == NULL)
|
if (ret->data == NULL)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
ret->data = internal_malloc_size (size * size0 ((array_t *)array));
|
ret->data = internal_malloc_size (size * arraysize);
|
||||||
ret->offset = 0;
|
ret->offset = 0;
|
||||||
ret->dtype = array->dtype;
|
ret->dtype = array->dtype;
|
||||||
for (i = 0; i < GFC_DESCRIPTOR_RANK (array); i++)
|
for (i = 0; i < GFC_DESCRIPTOR_RANK (array); i++)
|
||||||
|
@ -95,6 +98,9 @@ cshift1 (gfc_array_char * const restrict ret,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (arraysize == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
extent[0] = 1;
|
extent[0] = 1;
|
||||||
count[0] = 0;
|
count[0] = 0;
|
||||||
n = 0;
|
n = 0;
|
||||||
|
|
|
@ -67,6 +67,7 @@ cshift1 (gfc_array_char * const restrict ret,
|
||||||
index_type n;
|
index_type n;
|
||||||
int which;
|
int which;
|
||||||
GFC_INTEGER_8 sh;
|
GFC_INTEGER_8 sh;
|
||||||
|
index_type arraysize;
|
||||||
|
|
||||||
if (pwhich)
|
if (pwhich)
|
||||||
which = *pwhich - 1;
|
which = *pwhich - 1;
|
||||||
|
@ -76,11 +77,13 @@ cshift1 (gfc_array_char * const restrict ret,
|
||||||
if (which < 0 || (which + 1) > GFC_DESCRIPTOR_RANK (array))
|
if (which < 0 || (which + 1) > GFC_DESCRIPTOR_RANK (array))
|
||||||
runtime_error ("Argument 'DIM' is out of range in call to 'CSHIFT'");
|
runtime_error ("Argument 'DIM' is out of range in call to 'CSHIFT'");
|
||||||
|
|
||||||
|
arraysize = size0 ((array_t *)array);
|
||||||
|
|
||||||
if (ret->data == NULL)
|
if (ret->data == NULL)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
ret->data = internal_malloc_size (size * size0 ((array_t *)array));
|
ret->data = internal_malloc_size (size * arraysize);
|
||||||
ret->offset = 0;
|
ret->offset = 0;
|
||||||
ret->dtype = array->dtype;
|
ret->dtype = array->dtype;
|
||||||
for (i = 0; i < GFC_DESCRIPTOR_RANK (array); i++)
|
for (i = 0; i < GFC_DESCRIPTOR_RANK (array); i++)
|
||||||
|
@ -95,6 +98,9 @@ cshift1 (gfc_array_char * const restrict ret,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (arraysize == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
extent[0] = 1;
|
extent[0] = 1;
|
||||||
count[0] = 0;
|
count[0] = 0;
|
||||||
n = 0;
|
n = 0;
|
||||||
|
|
|
@ -102,6 +102,11 @@ eoshift1 (gfc_array_char * const restrict ret,
|
||||||
ret->dim[i].stride = (ret->dim[i-1].ubound + 1) * ret->dim[i-1].stride;
|
ret->dim[i].stride = (ret->dim[i-1].ubound + 1) * ret->dim[i-1].stride;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (size0 ((array_t *) ret) == 0)
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
n = 0;
|
n = 0;
|
||||||
for (dim = 0; dim < GFC_DESCRIPTOR_RANK (array); dim++)
|
for (dim = 0; dim < GFC_DESCRIPTOR_RANK (array); dim++)
|
||||||
|
|
|
@ -102,6 +102,11 @@ eoshift1 (gfc_array_char * const restrict ret,
|
||||||
ret->dim[i].stride = (ret->dim[i-1].ubound + 1) * ret->dim[i-1].stride;
|
ret->dim[i].stride = (ret->dim[i-1].ubound + 1) * ret->dim[i-1].stride;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (size0 ((array_t *) ret) == 0)
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
n = 0;
|
n = 0;
|
||||||
for (dim = 0; dim < GFC_DESCRIPTOR_RANK (array); dim++)
|
for (dim = 0; dim < GFC_DESCRIPTOR_RANK (array); dim++)
|
||||||
|
|
|
@ -102,6 +102,11 @@ eoshift1 (gfc_array_char * const restrict ret,
|
||||||
ret->dim[i].stride = (ret->dim[i-1].ubound + 1) * ret->dim[i-1].stride;
|
ret->dim[i].stride = (ret->dim[i-1].ubound + 1) * ret->dim[i-1].stride;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (size0 ((array_t *) ret) == 0)
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
n = 0;
|
n = 0;
|
||||||
for (dim = 0; dim < GFC_DESCRIPTOR_RANK (array); dim++)
|
for (dim = 0; dim < GFC_DESCRIPTOR_RANK (array); dim++)
|
||||||
|
|
|
@ -103,6 +103,11 @@ eoshift3 (gfc_array_char * const restrict ret,
|
||||||
ret->dim[i].stride = (ret->dim[i-1].ubound + 1) * ret->dim[i-1].stride;
|
ret->dim[i].stride = (ret->dim[i-1].ubound + 1) * ret->dim[i-1].stride;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (size0 ((array_t *) ret) == 0)
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
extent[0] = 1;
|
extent[0] = 1;
|
||||||
|
|
|
@ -103,6 +103,11 @@ eoshift3 (gfc_array_char * const restrict ret,
|
||||||
ret->dim[i].stride = (ret->dim[i-1].ubound + 1) * ret->dim[i-1].stride;
|
ret->dim[i].stride = (ret->dim[i-1].ubound + 1) * ret->dim[i-1].stride;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (size0 ((array_t *) ret) == 0)
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
extent[0] = 1;
|
extent[0] = 1;
|
||||||
|
|
|
@ -103,6 +103,11 @@ eoshift3 (gfc_array_char * const restrict ret,
|
||||||
ret->dim[i].stride = (ret->dim[i-1].ubound + 1) * ret->dim[i-1].stride;
|
ret->dim[i].stride = (ret->dim[i-1].ubound + 1) * ret->dim[i-1].stride;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (size0 ((array_t *) ret) == 0)
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
extent[0] = 1;
|
extent[0] = 1;
|
||||||
|
|
|
@ -97,10 +97,43 @@ cshift0 (gfc_array_char * ret, const gfc_array_char * array,
|
||||||
index_type len;
|
index_type len;
|
||||||
index_type n;
|
index_type n;
|
||||||
int whichloop;
|
int whichloop;
|
||||||
|
index_type arraysize;
|
||||||
|
|
||||||
if (which < 1 || which > GFC_DESCRIPTOR_RANK (array))
|
if (which < 1 || which > GFC_DESCRIPTOR_RANK (array))
|
||||||
runtime_error ("Argument 'DIM' is out of range in call to 'CSHIFT'");
|
runtime_error ("Argument 'DIM' is out of range in call to 'CSHIFT'");
|
||||||
|
|
||||||
|
arraysize = size0 ((array_t *) array);
|
||||||
|
|
||||||
|
if (ret->data == NULL)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
|
||||||
|
ret->offset = 0;
|
||||||
|
ret->dtype = array->dtype;
|
||||||
|
for (i = 0; i < GFC_DESCRIPTOR_RANK (array); i++)
|
||||||
|
{
|
||||||
|
ret->dim[i].lbound = 0;
|
||||||
|
ret->dim[i].ubound = array->dim[i].ubound - array->dim[i].lbound;
|
||||||
|
|
||||||
|
if (i == 0)
|
||||||
|
ret->dim[i].stride = 1;
|
||||||
|
else
|
||||||
|
ret->dim[i].stride = (ret->dim[i-1].ubound + 1)
|
||||||
|
* ret->dim[i-1].stride;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (arraysize > 0)
|
||||||
|
ret->data = internal_malloc_size (size * arraysize);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ret->data = internal_malloc_size (1);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (arraysize == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
which = which - 1;
|
which = which - 1;
|
||||||
sstride[0] = 0;
|
sstride[0] = 0;
|
||||||
rstride[0] = 0;
|
rstride[0] = 0;
|
||||||
|
@ -142,34 +175,6 @@ cshift0 (gfc_array_char * ret, const gfc_array_char * array,
|
||||||
soffset = size;
|
soffset = size;
|
||||||
len = 0;
|
len = 0;
|
||||||
|
|
||||||
if (ret->data == NULL)
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
index_type arraysize = size0 ((array_t *)array);
|
|
||||||
|
|
||||||
ret->offset = 0;
|
|
||||||
ret->dtype = array->dtype;
|
|
||||||
for (i = 0; i < GFC_DESCRIPTOR_RANK (array); i++)
|
|
||||||
{
|
|
||||||
ret->dim[i].lbound = 0;
|
|
||||||
ret->dim[i].ubound = array->dim[i].ubound - array->dim[i].lbound;
|
|
||||||
|
|
||||||
if (i == 0)
|
|
||||||
ret->dim[i].stride = 1;
|
|
||||||
else
|
|
||||||
ret->dim[i].stride = (ret->dim[i-1].ubound + 1)
|
|
||||||
* ret->dim[i-1].stride;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (arraysize > 0)
|
|
||||||
ret->data = internal_malloc_size (size * arraysize);
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ret->data = internal_malloc_size (1);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (dim = 0; dim < GFC_DESCRIPTOR_RANK (array); dim++)
|
for (dim = 0; dim < GFC_DESCRIPTOR_RANK (array); dim++)
|
||||||
{
|
{
|
||||||
if (dim == which)
|
if (dim == which)
|
||||||
|
|
|
@ -84,6 +84,11 @@ eoshift0 (gfc_array_char * ret, const gfc_array_char * array,
|
||||||
ret->dim[i].stride = (ret->dim[i-1].ubound + 1) * ret->dim[i-1].stride;
|
ret->dim[i].stride = (ret->dim[i-1].ubound + 1) * ret->dim[i-1].stride;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (size0 ((array_t *) ret) == 0)
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
which = which - 1;
|
which = which - 1;
|
||||||
|
|
||||||
|
|
|
@ -63,6 +63,7 @@ eoshift2 (gfc_array_char *ret, const gfc_array_char *array,
|
||||||
index_type dim;
|
index_type dim;
|
||||||
index_type len;
|
index_type len;
|
||||||
index_type n;
|
index_type n;
|
||||||
|
index_type arraysize;
|
||||||
|
|
||||||
/* The compiler cannot figure out that these are set, initialize
|
/* The compiler cannot figure out that these are set, initialize
|
||||||
them to avoid warnings. */
|
them to avoid warnings. */
|
||||||
|
@ -70,11 +71,13 @@ eoshift2 (gfc_array_char *ret, const gfc_array_char *array,
|
||||||
soffset = 0;
|
soffset = 0;
|
||||||
roffset = 0;
|
roffset = 0;
|
||||||
|
|
||||||
|
arraysize = size0 ((array_t *) array);
|
||||||
|
|
||||||
if (ret->data == NULL)
|
if (ret->data == NULL)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
ret->data = internal_malloc_size (size * size0 ((array_t *)array));
|
ret->data = internal_malloc_size (size * arraysize);
|
||||||
ret->offset = 0;
|
ret->offset = 0;
|
||||||
ret->dtype = array->dtype;
|
ret->dtype = array->dtype;
|
||||||
for (i = 0; i < GFC_DESCRIPTOR_RANK (array); i++)
|
for (i = 0; i < GFC_DESCRIPTOR_RANK (array); i++)
|
||||||
|
@ -88,6 +91,14 @@ eoshift2 (gfc_array_char *ret, const gfc_array_char *array,
|
||||||
ret->dim[i].stride = (ret->dim[i-1].ubound + 1) * ret->dim[i-1].stride;
|
ret->dim[i].stride = (ret->dim[i-1].ubound + 1) * ret->dim[i-1].stride;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (size0 ((array_t *) ret) == 0)
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (arraysize == 0 && filler == NULL)
|
||||||
|
return;
|
||||||
|
|
||||||
which = which - 1;
|
which = which - 1;
|
||||||
|
|
||||||
|
|
|
@ -68,6 +68,7 @@ cshift1 (gfc_array_char * const restrict ret,
|
||||||
index_type n;
|
index_type n;
|
||||||
int which;
|
int which;
|
||||||
'atype_name` sh;
|
'atype_name` sh;
|
||||||
|
index_type arraysize;
|
||||||
|
|
||||||
if (pwhich)
|
if (pwhich)
|
||||||
which = *pwhich - 1;
|
which = *pwhich - 1;
|
||||||
|
@ -77,11 +78,13 @@ cshift1 (gfc_array_char * const restrict ret,
|
||||||
if (which < 0 || (which + 1) > GFC_DESCRIPTOR_RANK (array))
|
if (which < 0 || (which + 1) > GFC_DESCRIPTOR_RANK (array))
|
||||||
runtime_error ("Argument ''`DIM''` is out of range in call to ''`CSHIFT''`");
|
runtime_error ("Argument ''`DIM''` is out of range in call to ''`CSHIFT''`");
|
||||||
|
|
||||||
|
arraysize = size0 ((array_t *)array);
|
||||||
|
|
||||||
if (ret->data == NULL)
|
if (ret->data == NULL)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
ret->data = internal_malloc_size (size * size0 ((array_t *)array));
|
ret->data = internal_malloc_size (size * arraysize);
|
||||||
ret->offset = 0;
|
ret->offset = 0;
|
||||||
ret->dtype = array->dtype;
|
ret->dtype = array->dtype;
|
||||||
for (i = 0; i < GFC_DESCRIPTOR_RANK (array); i++)
|
for (i = 0; i < GFC_DESCRIPTOR_RANK (array); i++)
|
||||||
|
@ -96,6 +99,9 @@ cshift1 (gfc_array_char * const restrict ret,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (arraysize == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
extent[0] = 1;
|
extent[0] = 1;
|
||||||
count[0] = 0;
|
count[0] = 0;
|
||||||
n = 0;
|
n = 0;
|
||||||
|
|
|
@ -103,6 +103,11 @@ eoshift1 (gfc_array_char * const restrict ret,
|
||||||
ret->dim[i].stride = (ret->dim[i-1].ubound + 1) * ret->dim[i-1].stride;
|
ret->dim[i].stride = (ret->dim[i-1].ubound + 1) * ret->dim[i-1].stride;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (size0 ((array_t *) ret) == 0)
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
n = 0;
|
n = 0;
|
||||||
for (dim = 0; dim < GFC_DESCRIPTOR_RANK (array); dim++)
|
for (dim = 0; dim < GFC_DESCRIPTOR_RANK (array); dim++)
|
||||||
|
|
|
@ -104,6 +104,11 @@ eoshift3 (gfc_array_char * const restrict ret,
|
||||||
ret->dim[i].stride = (ret->dim[i-1].ubound + 1) * ret->dim[i-1].stride;
|
ret->dim[i].stride = (ret->dim[i-1].ubound + 1) * ret->dim[i-1].stride;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (size0 ((array_t *) ret) == 0)
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
extent[0] = 1;
|
extent[0] = 1;
|
||||||
|
|
Loading…
Reference in New Issue