PR libfortran/21480
* m4/reshape.m4: Use sizeof (rtype_name) for sizes to be passed
to reshape_packed.
* generated/reshape_c4.c: Regenerated.
* generated/reshape_c8.c: Regenerated.
* generated/reshape_i4.c: Regenerated.
* generated/reshape_i8.c: Regenerated.
2005-06-09 Thomas Koenig <Thomas.Koenig@online.de>
PR libfortran/21480
* gfortran.dg/reshape-complex.f90: Add a test for a packed
complex array.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@100805
138bc75d-0d04-0410-961f-
82ee72b054a4
+2005-06-09 Thomas Koenig <Thomas.Koenig@online.de>
+
+ PR libfortran/21480
+ * gfortran.dg/reshape-complex.f90: Add a test for a packed
+ complex array.
+
2005-06-09 Nathan Sidwell <nathan@codesourcery.com>
* gcc.dg/alias-8.c: New.
2005-06-09 Nathan Sidwell <nathan@codesourcery.com>
* gcc.dg/alias-8.c: New.
! { dg-do run }
! PR 21127: Reshape of complex didn't work.
! { dg-do run }
! PR 21127: Reshape of complex didn't work.
+! PR 21480: Reshape of packed complex arrays didn't work either.
program main
complex, dimension(8) :: b
complex, dimension(2,2) :: a
program main
complex, dimension(8) :: b
complex, dimension(2,2) :: a
+ complex, dimension(2) :: c,d
integer :: i
b = (/(i,i=1,8)/)
a = reshape(b(1:8:2),shape(a))
if (a(1,1) /= (1.0, 0.0) .or. a(2,1) /= (3.0, 0.0) .or. &
a(1,2) /= (5.0, 0.0) .or. a(2,2) /= (7.0, 0.0)) call abort
integer :: i
b = (/(i,i=1,8)/)
a = reshape(b(1:8:2),shape(a))
if (a(1,1) /= (1.0, 0.0) .or. a(2,1) /= (3.0, 0.0) .or. &
a(1,2) /= (5.0, 0.0) .or. a(2,2) /= (7.0, 0.0)) call abort
+ c = (/( 3.14, -3.14), (2.71, -2.71)/)
+ d = reshape(c, shape (d))
+ if (any (c .ne. d)) call abort
+2005-06-09 Thomas Koenig <Thomas.Koenig@online.de>
+
+ PR libfortran/21480
+ * m4/reshape.m4: Use sizeof (rtype_name) for sizes to be passed
+ to reshape_packed.
+ * generated/reshape_c4.c: Regenerated.
+ * generated/reshape_c8.c: Regenerated.
+ * generated/reshape_i4.c: Regenerated.
+ * generated/reshape_i8.c: Regenerated.
+
2005-06-07 Thomas Koenig <Thomas.Koenig@online.de>
PR libfortran/21926
2005-06-07 Thomas Koenig <Thomas.Koenig@online.de>
PR libfortran/21926
if (rsize != 0 && ssize != 0 && psize != 0)
{
if (rsize != 0 && ssize != 0 && psize != 0)
{
- rsize *= 4;
- ssize *= 4;
- psize *= 4;
+ rsize *= sizeof (GFC_COMPLEX_4);
+ ssize *= sizeof (GFC_COMPLEX_4);
+ psize *= sizeof (GFC_COMPLEX_4);
reshape_packed ((char *)ret->data, rsize, (char *)source->data,
ssize, pad ? (char *)pad->data : NULL, psize);
return;
reshape_packed ((char *)ret->data, rsize, (char *)source->data,
ssize, pad ? (char *)pad->data : NULL, psize);
return;
if (rsize != 0 && ssize != 0 && psize != 0)
{
if (rsize != 0 && ssize != 0 && psize != 0)
{
- rsize *= 8;
- ssize *= 8;
- psize *= 8;
+ rsize *= sizeof (GFC_COMPLEX_8);
+ ssize *= sizeof (GFC_COMPLEX_8);
+ psize *= sizeof (GFC_COMPLEX_8);
reshape_packed ((char *)ret->data, rsize, (char *)source->data,
ssize, pad ? (char *)pad->data : NULL, psize);
return;
reshape_packed ((char *)ret->data, rsize, (char *)source->data,
ssize, pad ? (char *)pad->data : NULL, psize);
return;
if (rsize != 0 && ssize != 0 && psize != 0)
{
if (rsize != 0 && ssize != 0 && psize != 0)
{
- rsize *= 4;
- ssize *= 4;
- psize *= 4;
+ rsize *= sizeof (GFC_INTEGER_4);
+ ssize *= sizeof (GFC_INTEGER_4);
+ psize *= sizeof (GFC_INTEGER_4);
reshape_packed ((char *)ret->data, rsize, (char *)source->data,
ssize, pad ? (char *)pad->data : NULL, psize);
return;
reshape_packed ((char *)ret->data, rsize, (char *)source->data,
ssize, pad ? (char *)pad->data : NULL, psize);
return;
if (rsize != 0 && ssize != 0 && psize != 0)
{
if (rsize != 0 && ssize != 0 && psize != 0)
{
- rsize *= 8;
- ssize *= 8;
- psize *= 8;
+ rsize *= sizeof (GFC_INTEGER_8);
+ ssize *= sizeof (GFC_INTEGER_8);
+ psize *= sizeof (GFC_INTEGER_8);
reshape_packed ((char *)ret->data, rsize, (char *)source->data,
ssize, pad ? (char *)pad->data : NULL, psize);
return;
reshape_packed ((char *)ret->data, rsize, (char *)source->data,
ssize, pad ? (char *)pad->data : NULL, psize);
return;
if (rsize != 0 && ssize != 0 && psize != 0)
{
if (rsize != 0 && ssize != 0 && psize != 0)
{
- rsize *= rtype_kind;
- ssize *= rtype_kind;
- psize *= rtype_kind;
+ rsize *= sizeof (rtype_name);
+ ssize *= sizeof (rtype_name);
+ psize *= sizeof (rtype_name);
reshape_packed ((char *)ret->data, rsize, (char *)source->data,
ssize, pad ? (char *)pad->data : NULL, psize);
return;
reshape_packed ((char *)ret->data, rsize, (char *)source->data,
ssize, pad ? (char *)pad->data : NULL, psize);
return;