This is the mail archive of the
fortran@gcc.gnu.org
mailing list for the GNU Fortran project.
[gfortran, committed] Re: Inconsistency between trans-types.c andlibgfortran.h
- From: Tobias Schlüter <tobias dot schlueter at physik dot uni-muenchen dot de>
- To: Tobias Schlüter <tobias dot schlueter at physik dot uni-muenchen dot de>
- Cc: Paul Brook <paul at codesourcery dot com>,GCC Fortran mailing list <fortran at gcc dot gnu dot org>
- Date: Fri, 08 Jul 2005 00:02:58 +0200
- Subject: [gfortran, committed] Re: Inconsistency between trans-types.c andlibgfortran.h
- References: <4271778B.1080601@physik.uni-muenchen.de> <200504290111.07270.paul@codesourcery.com> <427184AA.9090102@physik.uni-muenchen.de>
Tobias Schlüter wrote:
>>>In libgfortran array descriptors are defined as follows:
>>>#define GFC_ARRAY_DESCRIPTOR(r, type) \
>>>struct {\
>>> type *data;\
>>> type *base;\
>>> index_type dtype;\
>>> descriptor_dimension dim[r];\
>>>}
>>
>>
>>This is out of date (ie. wrong).
>
>
> Ok, I will fix this once the other Paul has committed his patch for PR 18857.
Well, here it is at last.
- Tobi
2005-07-07 Tobias Schl"uter <tobias.schlueter@physik.uni-muenchen.de>
* libgfortran.h (GFC_ARRAY_DESCRIPTOR): Replace 'type *base' by
'size_t offset'. * intrinsics/cshift0.c, intrinsics/eoshift0.c,
intrinsics/eoshift2.c,intrinsics/pack_generic.c,
intrinsics/reshape_generic.c, intrinsics/spread_generic.c,
intrinsics/transpose_generic.c, intrinsics/unpack_generic,
m4/cshift1.m4, m4/eoshift1.m4, m4/eoshift3.m4, m4/iforeach.m4,
m4/ifunction.m4, m4/matmul.m4, m4/matmull.m4, m4/reshape.m4,
m4,transpose.m4: Set renamed field 'offset' to zero instead of
'base'. * generated/all_l4.c, generated/all_l8.c,
generated/any_l4.c, generated/any_l8.c, generated/count_4_l4.c,
generated/count_4_l8.c, generated/count_8_l4.c,
generated/count_8_l8.c, generated/chift1_4.c,
generated/cshift1_8.c, generated/eoshift1_4.c,
generated/eoshift1_8.c, generated/eoshift3_4.c,
generated/eoshift3_8.c, generated/matmul_c4.c,
generated/matmul_c8.c, generated/matmul_i4.c, matmul_i8.c,
generated/matmul_l4.c, generated/matmul_l8.c,
generated/matmul_r4.c, generated/matmul_r8.c,
generated/maxloc0_4_i4.c, generated/maxloc0_4_i8.c,
generated/maxloc0_4_r4.c, generated/maxloc0_4_r8.c,
generated/maxloc0_8_i4.c, generated/maxloc0_8_i8.c,
generated/maxloc0_8_r4.c, generated/maxloc0_8_r8.c,
generated/maxloc1_4_i4.c, generated/maxloc1_4_i8.c,
generated/maxloc1_4_r4.c, generated/maxloc1_4_r8.c,
generated/maxloc1_8_i4.c, generated/maxloc1_8_i8.c,
generated/maxloc1_8_r4.c, generated/maxloc1_8_r8.c,
generated/maxval_i4.c, generated/maxval_i8.c,
generated/maxval_r4.c, generated/maxval_r8.c,
generated/minloc0_4_i4.c, generated/minloc0_4_i8.c,
generated/minloc0_4_r4.c, generated/minloc0_4_r8.c,
generated/minloc0_8_i4.c, generated/minloc0_8_i8.c,
generated/minloc0_8_r4.c, generated/minloc0_8_r8.c,
generated/minloc1_4_i4.c, generated/minloc1_4_i8.c,
generated/minloc1_4_r4.c, generated/minloc1_4_r8.c,
generated/minloc1_8_i4.c, generated/minloc1_8_i8.c,
generated/minloc1_8_r4.c, generated/minloc1_8_r8.c,
generated/minval_i4.c, generated/minval_i8.c,
generated/minval_r4.c, generated/minval_r8.c,
generated/product_c4.c, generated/product_c8.c,
generated/product_i4.c, generated/product_i8.c,
generated/product_r4.c, generated/product_r8.c,
generated/reshape_c4.c, generated/reshape_c8.c,
generated/reshape_i4.c, generated/reshape_i8.c,
generated/sum_c4.c, generated/sum_c8.c, generated/sum_i4.c,
generated/sum_i8.c, generated/sum_r4.c, generated/sum_r8.c,
generated/transpose_c4.c, generated/transpose_c8.c,
generated/transpose_i4.c, generated/transpose_i8.c: Regenerate:
Index: libgfortran.h
===================================================================
RCS file: /cvs/gcc/gcc/libgfortran/libgfortran.h,v
retrieving revision 1.26
diff -u -p -r1.26 libgfortran.h
--- libgfortran.h 23 Jun 2005 18:50:24 -0000 1.26
+++ libgfortran.h 7 Jul 2005 21:40:46 -0000
@@ -235,7 +235,7 @@ descriptor_dimension;
#define GFC_ARRAY_DESCRIPTOR(r, type) \
struct {\
type *data;\
- type *base;\
+ size_t offset;\
index_type dtype;\
descriptor_dimension dim[r];\
}
Index: intrinsics/cshift0.c
===================================================================
RCS file: /cvs/gcc/gcc/libgfortran/intrinsics/cshift0.c,v
retrieving revision 1.11
diff -u -p -r1.11 cshift0.c
--- intrinsics/cshift0.c 4 May 2005 21:38:15 -0000 1.11
+++ intrinsics/cshift0.c 7 Jul 2005 21:40:47 -0000
@@ -148,7 +148,7 @@ cshift0 (gfc_array_char * ret, const gfc
int i;
ret->data = internal_malloc_size (size * size0 ((array_t *)array));
- ret->base = 0;
+ ret->offset = 0;
ret->dtype = array->dtype;
for (i = 0; i < GFC_DESCRIPTOR_RANK (array); i++)
{
Index: intrinsics/eoshift0.c
===================================================================
RCS file: /cvs/gcc/gcc/libgfortran/intrinsics/eoshift0.c,v
retrieving revision 1.13
diff -u -p -r1.13 eoshift0.c
--- intrinsics/eoshift0.c 14 Jun 2005 20:45:20 -0000 1.13
+++ intrinsics/eoshift0.c 7 Jul 2005 21:40:47 -0000
@@ -80,7 +80,7 @@ eoshift0 (gfc_array_char * ret, const gf
int i;
ret->data = internal_malloc_size (size * size0 ((array_t *)array));
- ret->base = 0;
+ ret->offset = 0;
ret->dtype = array->dtype;
for (i = 0; i < GFC_DESCRIPTOR_RANK (array); i++)
{
Index: intrinsics/eoshift2.c
===================================================================
RCS file: /cvs/gcc/gcc/libgfortran/intrinsics/eoshift2.c,v
retrieving revision 1.13
diff -u -p -r1.13 eoshift2.c
--- intrinsics/eoshift2.c 14 Jun 2005 20:45:21 -0000 1.13
+++ intrinsics/eoshift2.c 7 Jul 2005 21:40:47 -0000
@@ -81,7 +81,7 @@ eoshift2 (gfc_array_char *ret, const gfc
int i;
ret->data = internal_malloc_size (size * size0 ((array_t *)array));
- ret->base = 0;
+ ret->offset = 0;
ret->dtype = array->dtype;
for (i = 0; i < GFC_DESCRIPTOR_RANK (array); i++)
{
Index: intrinsics/pack_generic.c
===================================================================
RCS file: /cvs/gcc/gcc/libgfortran/intrinsics/pack_generic.c,v
retrieving revision 1.9
diff -u -p -r1.9 pack_generic.c
--- intrinsics/pack_generic.c 15 May 2005 15:37:06 -0000 1.9
+++ intrinsics/pack_generic.c 7 Jul 2005 21:40:47 -0000
@@ -201,7 +201,7 @@ pack (gfc_array_char *ret, const gfc_arr
ret->dim[0].stride = 1;
ret->data = internal_malloc_size (size * total);
- ret->base = 0;
+ ret->offset = 0;
if (total == 0)
/* In this case, nothing remains to be done. */
@@ -342,7 +342,7 @@ pack_s (gfc_array_char *ret, const gfc_a
ret->dim[0].ubound = -1;
ret->dim[0].stride = 1;
ret->data = internal_malloc_size (0);
- ret->base = 0;
+ ret->offset = 0;
return;
}
@@ -354,7 +354,7 @@ pack_s (gfc_array_char *ret, const gfc_a
ret->dim[0].stride = 1;
ret->data = internal_malloc_size (size * total);
- ret->base = 0;
+ ret->offset = 0;
}
rstride0 = ret->dim[0].stride * size;
Index: intrinsics/reshape_generic.c
===================================================================
RCS file: /cvs/gcc/gcc/libgfortran/intrinsics/reshape_generic.c,v
retrieving revision 1.8
diff -u -p -r1.8 reshape_generic.c
--- intrinsics/reshape_generic.c 22 Apr 2005 20:02:43 -0000 1.8
+++ intrinsics/reshape_generic.c 7 Jul 2005 21:40:47 -0000
@@ -100,7 +100,7 @@ reshape (parray *ret, parray *source, sh
ret->dim[n].stride = rs;
rs *= rex;
}
- ret->base = 0;
+ ret->offset = 0;
ret->data = internal_malloc_size ( rs * size );
ret->dtype = (source->dtype & ~GFC_DTYPE_RANK_MASK) | rdim;
}
Index: intrinsics/spread_generic.c
===================================================================
RCS file: /cvs/gcc/gcc/libgfortran/intrinsics/spread_generic.c,v
retrieving revision 1.9
diff -u -p -r1.9 spread_generic.c
--- intrinsics/spread_generic.c 15 May 2005 15:50:08 -0000 1.9
+++ intrinsics/spread_generic.c 7 Jul 2005 21:40:47 -0000
@@ -105,7 +105,7 @@ spread (gfc_array_char *ret, const gfc_a
dim++;
}
}
- ret->base = 0;
+ ret->offset = 0;
ret->data = internal_malloc_size (rs * size);
}
else
Index: intrinsics/transpose_generic.c
===================================================================
RCS file: /cvs/gcc/gcc/libgfortran/intrinsics/transpose_generic.c,v
retrieving revision 1.8
diff -u -p -r1.8 transpose_generic.c
--- intrinsics/transpose_generic.c 12 Jan 2005 21:27:30 -0000 1.8
+++ intrinsics/transpose_generic.c 7 Jul 2005 21:40:47 -0000
@@ -69,7 +69,7 @@ transpose (gfc_array_char *ret, gfc_arra
ret->dim[1].stride = ret->dim[0].ubound+1;
ret->data = internal_malloc_size (size * size0 ((array_t*)ret));
- ret->base = 0;
+ ret->offset = 0;
}
sxstride = source->dim[0].stride * size;
Index: intrinsics/unpack_generic.c
===================================================================
RCS file: /cvs/gcc/gcc/libgfortran/intrinsics/unpack_generic.c,v
retrieving revision 1.8
diff -u -p -r1.8 unpack_generic.c
--- intrinsics/unpack_generic.c 1 Jul 2005 05:44:49 -0000 1.8
+++ intrinsics/unpack_generic.c 7 Jul 2005 21:40:47 -0000
@@ -87,7 +87,7 @@ unpack1 (gfc_array_char *ret, const gfc_
mstride[n] = mask->dim[n].stride;
rs *= extent[n];
}
- ret->base = 0;
+ ret->offset = 0;
ret->data = internal_malloc_size (rs * size);
}
else
Index: m4/cshift1.m4
===================================================================
RCS file: /cvs/gcc/gcc/libgfortran/m4/cshift1.m4,v
retrieving revision 1.8
diff -u -p -r1.8 cshift1.m4
--- m4/cshift1.m4 25 Jun 2005 09:56:32 -0000 1.8
+++ m4/cshift1.m4 7 Jul 2005 21:40:47 -0000
@@ -86,7 +86,7 @@ cshift1_`'atype_kind (gfc_array_char * r
int i;
ret->data = internal_malloc_size (size * size0 ((array_t *)array));
- ret->base = 0;
+ ret->offset = 0;
ret->dtype = array->dtype;
for (i = 0; i < GFC_DESCRIPTOR_RANK (array); i++)
{
Index: m4/eoshift1.m4
===================================================================
RCS file: /cvs/gcc/gcc/libgfortran/m4/eoshift1.m4,v
retrieving revision 1.10
diff -u -p -r1.10 eoshift1.m4
--- m4/eoshift1.m4 28 Jun 2005 23:07:06 -0000 1.10
+++ m4/eoshift1.m4 7 Jul 2005 21:40:47 -0000
@@ -102,7 +102,7 @@ eoshift1_`'atype_kind (gfc_array_char *r
int i;
ret->data = internal_malloc_size (size * size0 ((array_t *)array));
- ret->base = 0;
+ ret->offset = 0;
ret->dtype = array->dtype;
for (i = 0; i < GFC_DESCRIPTOR_RANK (array); i++)
{
Index: m4/eoshift3.m4
===================================================================
RCS file: /cvs/gcc/gcc/libgfortran/m4/eoshift3.m4,v
retrieving revision 1.10
diff -u -p -r1.10 eoshift3.m4
--- m4/eoshift3.m4 28 Jun 2005 21:57:34 -0000 1.10
+++ m4/eoshift3.m4 7 Jul 2005 21:40:47 -0000
@@ -96,7 +96,7 @@ eoshift3_`'atype_kind (gfc_array_char *r
int i;
ret->data = internal_malloc_size (size * size0 ((array_t *)array));
- ret->base = 0;
+ ret->offset = 0;
ret->dtype = array->dtype;
for (i = 0; i < GFC_DESCRIPTOR_RANK (array); i++)
{
Index: m4/iforeach.m4
===================================================================
RCS file: /cvs/gcc/gcc/libgfortran/m4/iforeach.m4,v
retrieving revision 1.8
diff -u -p -r1.8 iforeach.m4
--- m4/iforeach.m4 12 Apr 2005 22:57:02 -0000 1.8
+++ m4/iforeach.m4 7 Jul 2005 21:40:47 -0000
@@ -29,7 +29,7 @@ name`'rtype_qual`_'atype_code (rtype * r
retarray->dim[0].ubound = rank-1;
retarray->dim[0].stride = 1;
retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
- retarray->base = 0;
+ retarray->offset = 0;
retarray->data = internal_malloc_size (sizeof (rtype_name) * rank);
}
else
@@ -139,7 +139,7 @@ void
retarray->dim[0].ubound = rank-1;
retarray->dim[0].stride = 1;
retarray->dtype = (retarray->dtype & ~GFC_DTYPE_RANK_MASK) | 1;
- retarray->base = 0;
+ retarray->offset = 0;
retarray->data = internal_malloc_size (sizeof (rtype_name) * rank);
}
else
Index: m4/ifunction.m4
===================================================================
RCS file: /cvs/gcc/gcc/libgfortran/m4/ifunction.m4,v
retrieving revision 1.11
diff -u -p -r1.11 ifunction.m4
--- m4/ifunction.m4 4 May 2005 21:38:15 -0000 1.11
+++ m4/ifunction.m4 7 Jul 2005 21:40:47 -0000
@@ -77,7 +77,7 @@ name`'rtype_qual`_'atype_code (rtype *re
= internal_malloc_size (sizeof (rtype_name)
* retarray->dim[rank-1].stride
* extent[rank-1]);
- retarray->base = 0;
+ retarray->offset = 0;
retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
}
else
@@ -222,7 +222,7 @@ void
= internal_malloc_size (sizeof (rtype_name)
* retarray->dim[rank-1].stride
* extent[rank-1]);
- retarray->base = 0;
+ retarray->offset = 0;
retarray->dtype = (array->dtype & ~GFC_DTYPE_RANK_MASK) | rank;
}
else
Index: m4/matmul.m4
===================================================================
RCS file: /cvs/gcc/gcc/libgfortran/m4/matmul.m4,v
retrieving revision 1.13
diff -u -p -r1.13 matmul.m4
--- m4/matmul.m4 7 Jun 2005 20:46:12 -0000 1.13
+++ m4/matmul.m4 7 Jul 2005 21:40:47 -0000
@@ -101,7 +101,7 @@ matmul_`'rtype_code (rtype * retarray, r
retarray->data
= internal_malloc_size (sizeof (rtype_name) * size0 ((array_t *) retarray));
- retarray->base = 0;
+ retarray->offset = 0;
}
abase = a->data;
Index: m4/matmull.m4
===================================================================
RCS file: /cvs/gcc/gcc/libgfortran/m4/matmull.m4,v
retrieving revision 1.9
diff -u -p -r1.9 matmull.m4
--- m4/matmull.m4 15 May 2005 15:37:06 -0000 1.9
+++ m4/matmull.m4 7 Jul 2005 21:40:47 -0000
@@ -92,7 +92,7 @@ matmul_`'rtype_code (rtype * retarray, g
retarray->data
= internal_malloc_size (sizeof (rtype_name) * size0 ((array_t *) retarray));
- retarray->base = 0;
+ retarray->offset = 0;
}
abase = a->data;
Index: m4/reshape.m4
===================================================================
RCS file: /cvs/gcc/gcc/libgfortran/m4/reshape.m4,v
retrieving revision 1.10
diff -u -p -r1.10 reshape.m4
--- m4/reshape.m4 9 Jun 2005 19:43:25 -0000 1.10
+++ m4/reshape.m4 7 Jul 2005 21:40:47 -0000
@@ -99,7 +99,7 @@ reshape_`'rtype_ccode (rtype * ret, rtyp
ret->dim[n].stride = rs;
rs *= rex;
}
- ret->base = 0;
+ ret->offset = 0;
ret->data = internal_malloc_size ( rs * sizeof (rtype_name));
ret->dtype = (source->dtype & ~GFC_DTYPE_RANK_MASK) | rdim;
}
Index: m4/transpose.m4
===================================================================
RCS file: /cvs/gcc/gcc/libgfortran/m4/transpose.m4,v
retrieving revision 1.10
diff -u -p -r1.10 transpose.m4
--- m4/transpose.m4 15 May 2005 12:44:41 -0000 1.10
+++ m4/transpose.m4 7 Jul 2005 21:40:47 -0000
@@ -65,7 +65,7 @@ transpose_`'rtype_code (rtype * ret, rty
ret->dim[1].stride = ret->dim[0].ubound+1;
ret->data = internal_malloc_size (sizeof (rtype_name) * size0 ((array_t
*) ret));
- ret->base = 0;
+ ret->offset = 0;
}
if (ret->dim[0].stride == 0)