OSDN Git Service

2006-03-13 Paul Thomas <pault@gcc.gnu.org>
[pf3gnuchains/gcc-fork.git] / libgfortran / generated / minloc0_8_r4.c
index a522c75..c484e8d 100644 (file)
@@ -39,17 +39,19 @@ Boston, MA 02110-1301, USA.  */
 #if defined (HAVE_GFC_REAL_4) && defined (HAVE_GFC_INTEGER_8)
 
 
-extern void minloc0_8_r4 (gfc_array_i8 * retarray, gfc_array_r4 *array);
+extern void minloc0_8_r4 (gfc_array_i8 * const restrict retarray, 
+       gfc_array_r4 * const restrict array);
 export_proto(minloc0_8_r4);
 
 void
-minloc0_8_r4 (gfc_array_i8 * retarray, gfc_array_r4 *array)
+minloc0_8_r4 (gfc_array_i8 * const restrict retarray, 
+       gfc_array_r4 * const restrict array)
 {
   index_type count[GFC_MAX_DIMENSIONS];
   index_type extent[GFC_MAX_DIMENSIONS];
   index_type sstride[GFC_MAX_DIMENSIONS];
   index_type dstride;
-  GFC_REAL_4 *base;
+  const GFC_REAL_4 *base;
   GFC_INTEGER_8 *dest;
   index_type rank;
   index_type n;
@@ -104,7 +106,7 @@ minloc0_8_r4 (gfc_array_i8 * retarray, gfc_array_r4 *array)
 
   /* Initialize the return value.  */
   for (n = 0; n < rank; n++)
-    dest[n * dstride] = 1;
+    dest[n * dstride] = 0;
   {
 
   GFC_REAL_4 minval;
@@ -116,7 +118,7 @@ minloc0_8_r4 (gfc_array_i8 * retarray, gfc_array_r4 *array)
       {
         /* Implementation start.  */
 
-  if (*base < minval)
+  if (*base < minval || !dest[0])
     {
       minval = *base;
       for (n = 0; n < rank; n++)
@@ -154,12 +156,14 @@ minloc0_8_r4 (gfc_array_i8 * retarray, gfc_array_r4 *array)
 }
 
 
-extern void mminloc0_8_r4 (gfc_array_i8 *, gfc_array_r4 *, gfc_array_l4 *);
+extern void mminloc0_8_r4 (gfc_array_i8 * const restrict, 
+       gfc_array_r4 * const restrict, gfc_array_l4 * const restrict);
 export_proto(mminloc0_8_r4);
 
 void
-mminloc0_8_r4 (gfc_array_i8 * retarray, gfc_array_r4 *array,
-                                 gfc_array_l4 * mask)
+mminloc0_8_r4 (gfc_array_i8 * const restrict retarray, 
+       gfc_array_r4 * const restrict array,
+       gfc_array_l4 * const restrict mask)
 {
   index_type count[GFC_MAX_DIMENSIONS];
   index_type extent[GFC_MAX_DIMENSIONS];
@@ -167,7 +171,7 @@ mminloc0_8_r4 (gfc_array_i8 * retarray, gfc_array_r4 *array,
   index_type mstride[GFC_MAX_DIMENSIONS];
   index_type dstride;
   GFC_INTEGER_8 *dest;
-  GFC_REAL_4 *base;
+  const GFC_REAL_4 *base;
   GFC_LOGICAL_4 *mbase;
   int rank;
   index_type n;
@@ -237,7 +241,7 @@ mminloc0_8_r4 (gfc_array_i8 * retarray, gfc_array_r4 *array,
 
   /* Initialize the return value.  */
   for (n = 0; n < rank; n++)
-    dest[n * dstride] = 1;
+    dest[n * dstride] = 0;
   {
 
   GFC_REAL_4 minval;
@@ -249,7 +253,7 @@ mminloc0_8_r4 (gfc_array_i8 * retarray, gfc_array_r4 *array,
       {
         /* Implementation start.  */
 
-  if (*mbase && *base < minval)
+  if (*mbase && (*base < minval || !dest[0]))
     {
       minval = *base;
       for (n = 0; n < rank; n++)