canonicalize on internal_malloc_size

Richard Henderson rth@redhat.com
Tue Dec 7 00:27:00 GMT 2004


This was a potential bug for 64-bit targets, truncating size_t
to GFC_INTEGER_4.  Committed.


r~


        * intrinsics/cshift0.c, intrinsics/eoshift0.c, intrinsics/eoshift2.c,
        intrinsics/pack_generic.c, intrinsics/string_intrinsics.c,
        intrinsics/transpose_generic.c, m4/ifunction.m4, m4/matmul.m4,
        m4/matmull.m4, m4/transpose.m4: Use internal_malloc_size instead
        of internal_malloc.
        * generated/*: Rebuild.

Index: intrinsics/cshift0.c
===================================================================
RCS file: /cvs/gcc/gcc/libgfortran/intrinsics/cshift0.c,v
retrieving revision 1.4
diff -c -p -d -u -r1.4 cshift0.c
--- intrinsics/cshift0.c	3 Sep 2004 19:03:43 -0000	1.4
+++ intrinsics/cshift0.c	7 Dec 2004 00:22:17 -0000
@@ -109,7 +109,7 @@ __cshift0 (gfc_array_char * ret, const g
     {
       int i;
 
-      ret->data = internal_malloc (size * size0 ((array_t *)array));
+      ret->data = internal_malloc_size (size * size0 ((array_t *)array));
       ret->base = 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.4
diff -c -p -d -u -r1.4 eoshift0.c
--- intrinsics/eoshift0.c	7 Dec 2004 00:00:56 -0000	1.4
+++ intrinsics/eoshift0.c	7 Dec 2004 00:22:17 -0000
@@ -64,7 +64,7 @@ __eoshift0 (gfc_array_char * ret, const 
     {
       int i;
 
-      ret->data = internal_malloc (size * size0 ((array_t *)array));
+      ret->data = internal_malloc_size (size * size0 ((array_t *)array));
       ret->base = 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.4
diff -c -p -d -u -r1.4 eoshift2.c
--- intrinsics/eoshift2.c	7 Dec 2004 00:00:56 -0000	1.4
+++ intrinsics/eoshift2.c	7 Dec 2004 00:22:17 -0000
@@ -65,7 +65,7 @@ __eoshift2 (gfc_array_char * ret, const 
     {
       int i;
 
-      ret->data = internal_malloc (size * size0 ((array_t *)array));
+      ret->data = internal_malloc_size (size * size0 ((array_t *)array));
       ret->base = 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.4
diff -c -p -d -u -r1.4 pack_generic.c
--- intrinsics/pack_generic.c	7 Dec 2004 00:00:56 -0000	1.4
+++ intrinsics/pack_generic.c	7 Dec 2004 00:22:17 -0000
@@ -188,7 +188,7 @@ __pack (gfc_array_char * ret, const gfc_
       ret->dim[0].ubound = total - 1;
       ret->dim[0].stride = 1;
 
-      ret->data = internal_malloc (size * total);
+      ret->data = internal_malloc_size (size * total);
       ret->base = 0;
 
       if (total == 0)
@@ -325,7 +325,7 @@ __pack_s (gfc_array_char * ret, const gf
 	      ret->dim[0].lbound = 0;
 	      ret->dim[0].ubound = -1;
 	      ret->dim[0].stride = 1;
-	      ret->data = internal_malloc (0);
+	      ret->data = internal_malloc_size (0);
 	      ret->base = 0;
 	      
 	      return;
@@ -337,7 +337,7 @@ __pack_s (gfc_array_char * ret, const gf
       ret->dim[0].ubound = total - 1;
       ret->dim[0].stride = 1;
 
-      ret->data = internal_malloc (size * total);
+      ret->data = internal_malloc_size (size * total);
       ret->base = 0;
     }
 
Index: intrinsics/string_intrinsics.c
===================================================================
RCS file: /cvs/gcc/gcc/libgfortran/intrinsics/string_intrinsics.c,v
retrieving revision 1.6
diff -c -p -d -u -r1.6 string_intrinsics.c
--- intrinsics/string_intrinsics.c	7 Dec 2004 00:00:56 -0000	1.6
+++ intrinsics/string_intrinsics.c	7 Dec 2004 00:22:17 -0000
@@ -184,7 +184,7 @@ string_trim (GFC_INTEGER_4 * len, void *
   if (*len > 0)
     {
       /* Allocate space for result string.  */
-      *dest = internal_malloc (*len);
+      *dest = internal_malloc_size (*len);
 
       /* copy string if necessary.  */
       memmove (*dest, src, *len);
Index: intrinsics/transpose_generic.c
===================================================================
RCS file: /cvs/gcc/gcc/libgfortran/intrinsics/transpose_generic.c,v
retrieving revision 1.4
diff -c -p -d -u -r1.4 transpose_generic.c
--- intrinsics/transpose_generic.c	7 Dec 2004 00:00:56 -0000	1.4
+++ intrinsics/transpose_generic.c	7 Dec 2004 00:22:17 -0000
@@ -56,7 +56,7 @@ __transpose (gfc_array_char * ret, gfc_a
       ret->dim[1].ubound = source->dim[0].ubound - source->dim[0].lbound;
       ret->dim[1].stride = ret->dim[0].ubound+1;
 
-      ret->data = internal_malloc (size * size0 ((array_t*)ret));
+      ret->data = internal_malloc_size (size * size0 ((array_t*)ret));
       ret->base = 0;
     }
 
Index: m4/ifunction.m4
===================================================================
RCS file: /cvs/gcc/gcc/libgfortran/m4/ifunction.m4,v
retrieving revision 1.4
diff -c -p -d -u -r1.4 ifunction.m4
--- m4/ifunction.m4	4 Aug 2004 14:30:46 -0000	1.4
+++ m4/ifunction.m4	7 Dec 2004 00:22:17 -0000
@@ -69,8 +69,10 @@ define(START_ARRAY_FUNCTION,
             retarray->dim[n].stride = retarray->dim[n-1].stride * extent[n-1];
         }
 
-      retarray->data = internal_malloc (sizeof (rtype_name) * 
-                                        (retarray->dim[rank-1].stride * extent[rank-1]));
+      retarray->data
+	 = internal_malloc_size (sizeof (rtype_name)
+		 		 * retarray->dim[rank-1].stride
+				 * extent[rank-1]);
       retarray->base = 0;
     }
           
Index: m4/matmul.m4
===================================================================
RCS file: /cvs/gcc/gcc/libgfortran/m4/matmul.m4,v
retrieving revision 1.5
diff -c -p -d -u -r1.5 matmul.m4
--- m4/matmul.m4	18 Nov 2004 08:45:11 -0000	1.5
+++ m4/matmul.m4	7 Dec 2004 00:22:17 -0000
@@ -87,7 +87,8 @@ void
           retarray->dim[1].stride = retarray->dim[0].ubound+1;
         }
           
-      retarray->data = internal_malloc (sizeof (rtype_name) * size0 (retarray));
+      retarray->data
+	= internal_malloc_size (sizeof (rtype_name) * size0 (retarray));
       retarray->base = 0;
     }
 
@@ -201,4 +202,3 @@ sinclude(`matmul_asm_'rtype_code`.m4')dn
 	    dest[x*rxstride + y*rystride] += abase[x*axstride + n*aystride] * bbase[n*bxstride + y*bystride];
     }
 }
-
Index: m4/matmull.m4
===================================================================
RCS file: /cvs/gcc/gcc/libgfortran/m4/matmull.m4,v
retrieving revision 1.4
diff -c -p -d -u -r1.4 matmull.m4
--- m4/matmull.m4	9 Aug 2004 14:34:39 -0000	1.4
+++ m4/matmull.m4	7 Dec 2004 00:22:17 -0000
@@ -77,7 +77,8 @@ void
           retarray->dim[1].stride = retarray->dim[0].ubound+1;
         }
           
-      retarray->data = internal_malloc (sizeof (rtype_name) * size0 (retarray));
+      retarray->data
+	= internal_malloc_size (sizeof (rtype_name) * size0 (retarray));
       retarray->base = 0;
     }
 
@@ -180,4 +181,3 @@ sinclude(`matmul_asm_'rtype_code`.m4')dn
       dest += rystride - (rxstride * xcount);
     }
 }
-
Index: m4/transpose.m4
===================================================================
RCS file: /cvs/gcc/gcc/libgfortran/m4/transpose.m4,v
retrieving revision 1.4
diff -c -p -d -u -r1.4 transpose.m4
--- m4/transpose.m4	4 Aug 2004 14:30:46 -0000	1.4
+++ m4/transpose.m4	7 Dec 2004 00:22:17 -0000
@@ -52,7 +52,7 @@ void
       ret->dim[1].ubound = source->dim[0].ubound - source->dim[0].lbound;
       ret->dim[1].stride = ret->dim[0].ubound+1;
 
-      ret->data = internal_malloc (sizeof (rtype_name) * size0 (ret));
+      ret->data = internal_malloc_size (sizeof (rtype_name) * size0 (ret));
       ret->base = 0;
     }
 



More information about the Fortran mailing list