OSDN Git Service

2008-11-18 Thomas Koenig <tkoenig@gcc.gnu.org>
[pf3gnuchains/gcc-fork.git] / libgfortran / m4 / reshape.m4
index 8d7ea72..b7e321e 100644 (file)
@@ -141,7 +141,7 @@ reshape_'rtype_ccode` ('rtype` * const restrict ret,
 
       source_extent = source->dim[0].ubound + 1 - source->dim[0].lbound;
 
-      if (rs != source_extent)
+      if (rs < source_extent || (rs > source_extent && !pad))
        runtime_error("Incorrect size in SOURCE argument to RESHAPE"
                      " intrinsic: is %ld, should be %ld",
                      (long int) source_extent, (long int) rs);
@@ -266,16 +266,16 @@ reshape_'rtype_ccode` ('rtype` * const restrict ret,
 
   if (sempty)
     {
-      /* Switch immediately to the pad array.  */
+      /* Pretend we are using the pad array the first time around, too.  */
       src = pptr;
-      sptr = NULL;
+      sptr = pptr;
       sdim = pdim;
       for (dim = 0; dim < pdim; dim++)
        {
          scount[dim] = pcount[dim];
          sextent[dim] = pextent[dim];
          sstride[dim] = pstride[dim];
-         sstride0 = sstride[0] * sizeof ('rtype_name`);
+         sstride0 = pstride[0];
        }
     }