re PR fortran/49479 (reshape / optionals / zero sized arrays)
2011-06-28 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/49479 * m4/reshape.m4: If source allocation is smaller than one, set it to one. * intrinsics/reshape_generic.c: Likewise. * generated/reshape_r16.c: Regenerated. * generated/reshape_c4.c: Regenerated. * generated/reshape_c16.c: Regenerated. * generated/reshape_c8.c: Regenerated. * generated/reshape_r4.c: Regenerated. * generated/reshape_i4.c: Regenerated. * generated/reshape_r10.c: Regenerated. * generated/reshape_r8.c: Regenerated. * generated/reshape_c10.c: Regenerated. * generated/reshape_i8.c: Regenerated. * generated/reshape_i16.c: Regenerated. 2011-06-28 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/49479 * gfortran.dg/reshape_zerosize_3.f90: New test. From-SVN: r175594
This commit is contained in:
parent
6138f9bd87
commit
19b76346c0
16 changed files with 184 additions and 13 deletions
|
@ -97,6 +97,8 @@ reshape_r16 (gfc_array_r16 * const restrict ret,
|
|||
|
||||
if (ret->data == NULL)
|
||||
{
|
||||
index_type alloc_size;
|
||||
|
||||
rs = 1;
|
||||
for (n = 0; n < rdim; n++)
|
||||
{
|
||||
|
@ -107,7 +109,13 @@ reshape_r16 (gfc_array_r16 * const restrict ret,
|
|||
rs *= rex;
|
||||
}
|
||||
ret->offset = 0;
|
||||
ret->data = internal_malloc_size ( rs * sizeof (GFC_REAL_16));
|
||||
|
||||
if (unlikely (rs < 1))
|
||||
alloc_size = 1;
|
||||
else
|
||||
alloc_size = rs * sizeof (GFC_REAL_16);
|
||||
|
||||
ret->data = internal_malloc_size (alloc_size);
|
||||
ret->dtype = (source->dtype & ~GFC_DTYPE_RANK_MASK) | rdim;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue