This is the mail archive of the fortran@gcc.gnu.org mailing list for the GNU Fortran project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[gfortran, committed] Re: Inconsistency between trans-types.c andlibgfortran.h


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)


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]