https://gcc.gnu.org/g:f7251052ef397e60bb1d2f6fad48a45412d049d8
commit f7251052ef397e60bb1d2f6fad48a45412d049d8 Author: Mikael Morin <[email protected]> Date: Tue Sep 9 17:56:57 2025 +0200 Correction pack.m4 Diff: --- libgfortran/generated/pack_c10.c | 12 ++++++------ libgfortran/generated/pack_c16.c | 12 ++++++------ libgfortran/generated/pack_c17.c | 12 ++++++------ libgfortran/generated/pack_c4.c | 12 ++++++------ libgfortran/generated/pack_c8.c | 12 ++++++------ libgfortran/generated/pack_i1.c | 12 ++++++------ libgfortran/generated/pack_i16.c | 12 ++++++------ libgfortran/generated/pack_i2.c | 12 ++++++------ libgfortran/generated/pack_i4.c | 12 ++++++------ libgfortran/generated/pack_i8.c | 12 ++++++------ libgfortran/generated/pack_r10.c | 12 ++++++------ libgfortran/generated/pack_r16.c | 12 ++++++------ libgfortran/generated/pack_r17.c | 12 ++++++------ libgfortran/generated/pack_r4.c | 12 ++++++------ libgfortran/generated/pack_r8.c | 12 ++++++------ libgfortran/m4/pack.m4 | 12 ++++++------ 16 files changed, 96 insertions(+), 96 deletions(-) diff --git a/libgfortran/generated/pack_c10.c b/libgfortran/generated/pack_c10.c index 4eecd6c5b99b..fd2af090cc95 100644 --- a/libgfortran/generated/pack_c10.c +++ b/libgfortran/generated/pack_c10.c @@ -130,7 +130,7 @@ pack_c10 (gfc_array_c10 *ret, const gfc_array_c10 *array, mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); } if (sstride[0] == 0) - sstride[0] = GFC_DESCRIPTOR_SIZE(array); + sstride[0] = sizeof (GFC_COMPLEX_10); if (mstride[0] == 0) mstride[0] = mask_kind; @@ -189,7 +189,7 @@ pack_c10 (gfc_array_c10 *ret, const gfc_array_c10 *array, rstride0 = GFC_DESCRIPTOR_STRIDE_BYTES(ret,0); if (rstride0 == 0) - rstride0 = GFC_DESCRIPTOR_SIZE(ret); + rstride0 = sizeof (GFC_COMPLEX_10); sstride0 = sstride[0]; mstride0 = mstride[0]; rptr = ret->base_addr; @@ -237,14 +237,14 @@ pack_c10 (gfc_array_c10 *ret, const gfc_array_c10 *array, if (vector) { n = GFC_DESCRIPTOR_EXTENT(vector,0); - nelem = ((rptr - ret->base_addr) / rstride0); + nelem = ((char*)rptr - (char*)ret->base_addr) / rstride0; if (n > nelem) { - sstride0 = GFC_DESCRIPTOR_STRIDE(vector,0); + sstride0 = GFC_DESCRIPTOR_STRIDE_BYTES(vector,0); if (sstride0 == 0) - sstride0 = 1; + sstride0 = sizeof (GFC_COMPLEX_10); - sptr = vector->base_addr + sstride0 * nelem; + sptr = (const GFC_COMPLEX_10 *sptr) (((char*)vector->base_addr) + sstride0 * nelem); n -= nelem; while (n--) { diff --git a/libgfortran/generated/pack_c16.c b/libgfortran/generated/pack_c16.c index 34166af630ab..17ae51c83778 100644 --- a/libgfortran/generated/pack_c16.c +++ b/libgfortran/generated/pack_c16.c @@ -130,7 +130,7 @@ pack_c16 (gfc_array_c16 *ret, const gfc_array_c16 *array, mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); } if (sstride[0] == 0) - sstride[0] = GFC_DESCRIPTOR_SIZE(array); + sstride[0] = sizeof (GFC_COMPLEX_16); if (mstride[0] == 0) mstride[0] = mask_kind; @@ -189,7 +189,7 @@ pack_c16 (gfc_array_c16 *ret, const gfc_array_c16 *array, rstride0 = GFC_DESCRIPTOR_STRIDE_BYTES(ret,0); if (rstride0 == 0) - rstride0 = GFC_DESCRIPTOR_SIZE(ret); + rstride0 = sizeof (GFC_COMPLEX_16); sstride0 = sstride[0]; mstride0 = mstride[0]; rptr = ret->base_addr; @@ -237,14 +237,14 @@ pack_c16 (gfc_array_c16 *ret, const gfc_array_c16 *array, if (vector) { n = GFC_DESCRIPTOR_EXTENT(vector,0); - nelem = ((rptr - ret->base_addr) / rstride0); + nelem = ((char*)rptr - (char*)ret->base_addr) / rstride0; if (n > nelem) { - sstride0 = GFC_DESCRIPTOR_STRIDE(vector,0); + sstride0 = GFC_DESCRIPTOR_STRIDE_BYTES(vector,0); if (sstride0 == 0) - sstride0 = 1; + sstride0 = sizeof (GFC_COMPLEX_16); - sptr = vector->base_addr + sstride0 * nelem; + sptr = (const GFC_COMPLEX_16 *sptr) (((char*)vector->base_addr) + sstride0 * nelem); n -= nelem; while (n--) { diff --git a/libgfortran/generated/pack_c17.c b/libgfortran/generated/pack_c17.c index af7784f318b3..4da81441032b 100644 --- a/libgfortran/generated/pack_c17.c +++ b/libgfortran/generated/pack_c17.c @@ -130,7 +130,7 @@ pack_c17 (gfc_array_c17 *ret, const gfc_array_c17 *array, mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); } if (sstride[0] == 0) - sstride[0] = GFC_DESCRIPTOR_SIZE(array); + sstride[0] = sizeof (GFC_COMPLEX_17); if (mstride[0] == 0) mstride[0] = mask_kind; @@ -189,7 +189,7 @@ pack_c17 (gfc_array_c17 *ret, const gfc_array_c17 *array, rstride0 = GFC_DESCRIPTOR_STRIDE_BYTES(ret,0); if (rstride0 == 0) - rstride0 = GFC_DESCRIPTOR_SIZE(ret); + rstride0 = sizeof (GFC_COMPLEX_17); sstride0 = sstride[0]; mstride0 = mstride[0]; rptr = ret->base_addr; @@ -237,14 +237,14 @@ pack_c17 (gfc_array_c17 *ret, const gfc_array_c17 *array, if (vector) { n = GFC_DESCRIPTOR_EXTENT(vector,0); - nelem = ((rptr - ret->base_addr) / rstride0); + nelem = ((char*)rptr - (char*)ret->base_addr) / rstride0; if (n > nelem) { - sstride0 = GFC_DESCRIPTOR_STRIDE(vector,0); + sstride0 = GFC_DESCRIPTOR_STRIDE_BYTES(vector,0); if (sstride0 == 0) - sstride0 = 1; + sstride0 = sizeof (GFC_COMPLEX_17); - sptr = vector->base_addr + sstride0 * nelem; + sptr = (const GFC_COMPLEX_17 *sptr) (((char*)vector->base_addr) + sstride0 * nelem); n -= nelem; while (n--) { diff --git a/libgfortran/generated/pack_c4.c b/libgfortran/generated/pack_c4.c index 2cc776083c03..29dd981b4de6 100644 --- a/libgfortran/generated/pack_c4.c +++ b/libgfortran/generated/pack_c4.c @@ -130,7 +130,7 @@ pack_c4 (gfc_array_c4 *ret, const gfc_array_c4 *array, mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); } if (sstride[0] == 0) - sstride[0] = GFC_DESCRIPTOR_SIZE(array); + sstride[0] = sizeof (GFC_COMPLEX_4); if (mstride[0] == 0) mstride[0] = mask_kind; @@ -189,7 +189,7 @@ pack_c4 (gfc_array_c4 *ret, const gfc_array_c4 *array, rstride0 = GFC_DESCRIPTOR_STRIDE_BYTES(ret,0); if (rstride0 == 0) - rstride0 = GFC_DESCRIPTOR_SIZE(ret); + rstride0 = sizeof (GFC_COMPLEX_4); sstride0 = sstride[0]; mstride0 = mstride[0]; rptr = ret->base_addr; @@ -237,14 +237,14 @@ pack_c4 (gfc_array_c4 *ret, const gfc_array_c4 *array, if (vector) { n = GFC_DESCRIPTOR_EXTENT(vector,0); - nelem = ((rptr - ret->base_addr) / rstride0); + nelem = ((char*)rptr - (char*)ret->base_addr) / rstride0; if (n > nelem) { - sstride0 = GFC_DESCRIPTOR_STRIDE(vector,0); + sstride0 = GFC_DESCRIPTOR_STRIDE_BYTES(vector,0); if (sstride0 == 0) - sstride0 = 1; + sstride0 = sizeof (GFC_COMPLEX_4); - sptr = vector->base_addr + sstride0 * nelem; + sptr = (const GFC_COMPLEX_4 *sptr) (((char*)vector->base_addr) + sstride0 * nelem); n -= nelem; while (n--) { diff --git a/libgfortran/generated/pack_c8.c b/libgfortran/generated/pack_c8.c index bcd44d429a81..2bf8dfae04fb 100644 --- a/libgfortran/generated/pack_c8.c +++ b/libgfortran/generated/pack_c8.c @@ -130,7 +130,7 @@ pack_c8 (gfc_array_c8 *ret, const gfc_array_c8 *array, mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); } if (sstride[0] == 0) - sstride[0] = GFC_DESCRIPTOR_SIZE(array); + sstride[0] = sizeof (GFC_COMPLEX_8); if (mstride[0] == 0) mstride[0] = mask_kind; @@ -189,7 +189,7 @@ pack_c8 (gfc_array_c8 *ret, const gfc_array_c8 *array, rstride0 = GFC_DESCRIPTOR_STRIDE_BYTES(ret,0); if (rstride0 == 0) - rstride0 = GFC_DESCRIPTOR_SIZE(ret); + rstride0 = sizeof (GFC_COMPLEX_8); sstride0 = sstride[0]; mstride0 = mstride[0]; rptr = ret->base_addr; @@ -237,14 +237,14 @@ pack_c8 (gfc_array_c8 *ret, const gfc_array_c8 *array, if (vector) { n = GFC_DESCRIPTOR_EXTENT(vector,0); - nelem = ((rptr - ret->base_addr) / rstride0); + nelem = ((char*)rptr - (char*)ret->base_addr) / rstride0; if (n > nelem) { - sstride0 = GFC_DESCRIPTOR_STRIDE(vector,0); + sstride0 = GFC_DESCRIPTOR_STRIDE_BYTES(vector,0); if (sstride0 == 0) - sstride0 = 1; + sstride0 = sizeof (GFC_COMPLEX_8); - sptr = vector->base_addr + sstride0 * nelem; + sptr = (const GFC_COMPLEX_8 *sptr) (((char*)vector->base_addr) + sstride0 * nelem); n -= nelem; while (n--) { diff --git a/libgfortran/generated/pack_i1.c b/libgfortran/generated/pack_i1.c index 41855f2bbb70..5ba4adfc7525 100644 --- a/libgfortran/generated/pack_i1.c +++ b/libgfortran/generated/pack_i1.c @@ -130,7 +130,7 @@ pack_i1 (gfc_array_i1 *ret, const gfc_array_i1 *array, mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); } if (sstride[0] == 0) - sstride[0] = GFC_DESCRIPTOR_SIZE(array); + sstride[0] = sizeof (GFC_INTEGER_1); if (mstride[0] == 0) mstride[0] = mask_kind; @@ -189,7 +189,7 @@ pack_i1 (gfc_array_i1 *ret, const gfc_array_i1 *array, rstride0 = GFC_DESCRIPTOR_STRIDE_BYTES(ret,0); if (rstride0 == 0) - rstride0 = GFC_DESCRIPTOR_SIZE(ret); + rstride0 = sizeof (GFC_INTEGER_1); sstride0 = sstride[0]; mstride0 = mstride[0]; rptr = ret->base_addr; @@ -237,14 +237,14 @@ pack_i1 (gfc_array_i1 *ret, const gfc_array_i1 *array, if (vector) { n = GFC_DESCRIPTOR_EXTENT(vector,0); - nelem = ((rptr - ret->base_addr) / rstride0); + nelem = ((char*)rptr - (char*)ret->base_addr) / rstride0; if (n > nelem) { - sstride0 = GFC_DESCRIPTOR_STRIDE(vector,0); + sstride0 = GFC_DESCRIPTOR_STRIDE_BYTES(vector,0); if (sstride0 == 0) - sstride0 = 1; + sstride0 = sizeof (GFC_INTEGER_1); - sptr = vector->base_addr + sstride0 * nelem; + sptr = (const GFC_INTEGER_1 *sptr) (((char*)vector->base_addr) + sstride0 * nelem); n -= nelem; while (n--) { diff --git a/libgfortran/generated/pack_i16.c b/libgfortran/generated/pack_i16.c index 2d12c0f4fb5c..749fa8661c2c 100644 --- a/libgfortran/generated/pack_i16.c +++ b/libgfortran/generated/pack_i16.c @@ -130,7 +130,7 @@ pack_i16 (gfc_array_i16 *ret, const gfc_array_i16 *array, mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); } if (sstride[0] == 0) - sstride[0] = GFC_DESCRIPTOR_SIZE(array); + sstride[0] = sizeof (GFC_INTEGER_16); if (mstride[0] == 0) mstride[0] = mask_kind; @@ -189,7 +189,7 @@ pack_i16 (gfc_array_i16 *ret, const gfc_array_i16 *array, rstride0 = GFC_DESCRIPTOR_STRIDE_BYTES(ret,0); if (rstride0 == 0) - rstride0 = GFC_DESCRIPTOR_SIZE(ret); + rstride0 = sizeof (GFC_INTEGER_16); sstride0 = sstride[0]; mstride0 = mstride[0]; rptr = ret->base_addr; @@ -237,14 +237,14 @@ pack_i16 (gfc_array_i16 *ret, const gfc_array_i16 *array, if (vector) { n = GFC_DESCRIPTOR_EXTENT(vector,0); - nelem = ((rptr - ret->base_addr) / rstride0); + nelem = ((char*)rptr - (char*)ret->base_addr) / rstride0; if (n > nelem) { - sstride0 = GFC_DESCRIPTOR_STRIDE(vector,0); + sstride0 = GFC_DESCRIPTOR_STRIDE_BYTES(vector,0); if (sstride0 == 0) - sstride0 = 1; + sstride0 = sizeof (GFC_INTEGER_16); - sptr = vector->base_addr + sstride0 * nelem; + sptr = (const GFC_INTEGER_16 *sptr) (((char*)vector->base_addr) + sstride0 * nelem); n -= nelem; while (n--) { diff --git a/libgfortran/generated/pack_i2.c b/libgfortran/generated/pack_i2.c index 6e0f489c0512..088b615fa2ac 100644 --- a/libgfortran/generated/pack_i2.c +++ b/libgfortran/generated/pack_i2.c @@ -130,7 +130,7 @@ pack_i2 (gfc_array_i2 *ret, const gfc_array_i2 *array, mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); } if (sstride[0] == 0) - sstride[0] = GFC_DESCRIPTOR_SIZE(array); + sstride[0] = sizeof (GFC_INTEGER_2); if (mstride[0] == 0) mstride[0] = mask_kind; @@ -189,7 +189,7 @@ pack_i2 (gfc_array_i2 *ret, const gfc_array_i2 *array, rstride0 = GFC_DESCRIPTOR_STRIDE_BYTES(ret,0); if (rstride0 == 0) - rstride0 = GFC_DESCRIPTOR_SIZE(ret); + rstride0 = sizeof (GFC_INTEGER_2); sstride0 = sstride[0]; mstride0 = mstride[0]; rptr = ret->base_addr; @@ -237,14 +237,14 @@ pack_i2 (gfc_array_i2 *ret, const gfc_array_i2 *array, if (vector) { n = GFC_DESCRIPTOR_EXTENT(vector,0); - nelem = ((rptr - ret->base_addr) / rstride0); + nelem = ((char*)rptr - (char*)ret->base_addr) / rstride0; if (n > nelem) { - sstride0 = GFC_DESCRIPTOR_STRIDE(vector,0); + sstride0 = GFC_DESCRIPTOR_STRIDE_BYTES(vector,0); if (sstride0 == 0) - sstride0 = 1; + sstride0 = sizeof (GFC_INTEGER_2); - sptr = vector->base_addr + sstride0 * nelem; + sptr = (const GFC_INTEGER_2 *sptr) (((char*)vector->base_addr) + sstride0 * nelem); n -= nelem; while (n--) { diff --git a/libgfortran/generated/pack_i4.c b/libgfortran/generated/pack_i4.c index a2b54bf37538..3662e418e891 100644 --- a/libgfortran/generated/pack_i4.c +++ b/libgfortran/generated/pack_i4.c @@ -130,7 +130,7 @@ pack_i4 (gfc_array_i4 *ret, const gfc_array_i4 *array, mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); } if (sstride[0] == 0) - sstride[0] = GFC_DESCRIPTOR_SIZE(array); + sstride[0] = sizeof (GFC_INTEGER_4); if (mstride[0] == 0) mstride[0] = mask_kind; @@ -189,7 +189,7 @@ pack_i4 (gfc_array_i4 *ret, const gfc_array_i4 *array, rstride0 = GFC_DESCRIPTOR_STRIDE_BYTES(ret,0); if (rstride0 == 0) - rstride0 = GFC_DESCRIPTOR_SIZE(ret); + rstride0 = sizeof (GFC_INTEGER_4); sstride0 = sstride[0]; mstride0 = mstride[0]; rptr = ret->base_addr; @@ -237,14 +237,14 @@ pack_i4 (gfc_array_i4 *ret, const gfc_array_i4 *array, if (vector) { n = GFC_DESCRIPTOR_EXTENT(vector,0); - nelem = ((rptr - ret->base_addr) / rstride0); + nelem = ((char*)rptr - (char*)ret->base_addr) / rstride0; if (n > nelem) { - sstride0 = GFC_DESCRIPTOR_STRIDE(vector,0); + sstride0 = GFC_DESCRIPTOR_STRIDE_BYTES(vector,0); if (sstride0 == 0) - sstride0 = 1; + sstride0 = sizeof (GFC_INTEGER_4); - sptr = vector->base_addr + sstride0 * nelem; + sptr = (const GFC_INTEGER_4 *sptr) (((char*)vector->base_addr) + sstride0 * nelem); n -= nelem; while (n--) { diff --git a/libgfortran/generated/pack_i8.c b/libgfortran/generated/pack_i8.c index 9bf521ce1054..ff1212c0660e 100644 --- a/libgfortran/generated/pack_i8.c +++ b/libgfortran/generated/pack_i8.c @@ -130,7 +130,7 @@ pack_i8 (gfc_array_i8 *ret, const gfc_array_i8 *array, mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); } if (sstride[0] == 0) - sstride[0] = GFC_DESCRIPTOR_SIZE(array); + sstride[0] = sizeof (GFC_INTEGER_8); if (mstride[0] == 0) mstride[0] = mask_kind; @@ -189,7 +189,7 @@ pack_i8 (gfc_array_i8 *ret, const gfc_array_i8 *array, rstride0 = GFC_DESCRIPTOR_STRIDE_BYTES(ret,0); if (rstride0 == 0) - rstride0 = GFC_DESCRIPTOR_SIZE(ret); + rstride0 = sizeof (GFC_INTEGER_8); sstride0 = sstride[0]; mstride0 = mstride[0]; rptr = ret->base_addr; @@ -237,14 +237,14 @@ pack_i8 (gfc_array_i8 *ret, const gfc_array_i8 *array, if (vector) { n = GFC_DESCRIPTOR_EXTENT(vector,0); - nelem = ((rptr - ret->base_addr) / rstride0); + nelem = ((char*)rptr - (char*)ret->base_addr) / rstride0; if (n > nelem) { - sstride0 = GFC_DESCRIPTOR_STRIDE(vector,0); + sstride0 = GFC_DESCRIPTOR_STRIDE_BYTES(vector,0); if (sstride0 == 0) - sstride0 = 1; + sstride0 = sizeof (GFC_INTEGER_8); - sptr = vector->base_addr + sstride0 * nelem; + sptr = (const GFC_INTEGER_8 *sptr) (((char*)vector->base_addr) + sstride0 * nelem); n -= nelem; while (n--) { diff --git a/libgfortran/generated/pack_r10.c b/libgfortran/generated/pack_r10.c index a72e5fde4e5c..121d5106e04a 100644 --- a/libgfortran/generated/pack_r10.c +++ b/libgfortran/generated/pack_r10.c @@ -130,7 +130,7 @@ pack_r10 (gfc_array_r10 *ret, const gfc_array_r10 *array, mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); } if (sstride[0] == 0) - sstride[0] = GFC_DESCRIPTOR_SIZE(array); + sstride[0] = sizeof (GFC_REAL_10); if (mstride[0] == 0) mstride[0] = mask_kind; @@ -189,7 +189,7 @@ pack_r10 (gfc_array_r10 *ret, const gfc_array_r10 *array, rstride0 = GFC_DESCRIPTOR_STRIDE_BYTES(ret,0); if (rstride0 == 0) - rstride0 = GFC_DESCRIPTOR_SIZE(ret); + rstride0 = sizeof (GFC_REAL_10); sstride0 = sstride[0]; mstride0 = mstride[0]; rptr = ret->base_addr; @@ -237,14 +237,14 @@ pack_r10 (gfc_array_r10 *ret, const gfc_array_r10 *array, if (vector) { n = GFC_DESCRIPTOR_EXTENT(vector,0); - nelem = ((rptr - ret->base_addr) / rstride0); + nelem = ((char*)rptr - (char*)ret->base_addr) / rstride0; if (n > nelem) { - sstride0 = GFC_DESCRIPTOR_STRIDE(vector,0); + sstride0 = GFC_DESCRIPTOR_STRIDE_BYTES(vector,0); if (sstride0 == 0) - sstride0 = 1; + sstride0 = sizeof (GFC_REAL_10); - sptr = vector->base_addr + sstride0 * nelem; + sptr = (const GFC_REAL_10 *sptr) (((char*)vector->base_addr) + sstride0 * nelem); n -= nelem; while (n--) { diff --git a/libgfortran/generated/pack_r16.c b/libgfortran/generated/pack_r16.c index 4ec828d32d52..a8e206a63f96 100644 --- a/libgfortran/generated/pack_r16.c +++ b/libgfortran/generated/pack_r16.c @@ -130,7 +130,7 @@ pack_r16 (gfc_array_r16 *ret, const gfc_array_r16 *array, mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); } if (sstride[0] == 0) - sstride[0] = GFC_DESCRIPTOR_SIZE(array); + sstride[0] = sizeof (GFC_REAL_16); if (mstride[0] == 0) mstride[0] = mask_kind; @@ -189,7 +189,7 @@ pack_r16 (gfc_array_r16 *ret, const gfc_array_r16 *array, rstride0 = GFC_DESCRIPTOR_STRIDE_BYTES(ret,0); if (rstride0 == 0) - rstride0 = GFC_DESCRIPTOR_SIZE(ret); + rstride0 = sizeof (GFC_REAL_16); sstride0 = sstride[0]; mstride0 = mstride[0]; rptr = ret->base_addr; @@ -237,14 +237,14 @@ pack_r16 (gfc_array_r16 *ret, const gfc_array_r16 *array, if (vector) { n = GFC_DESCRIPTOR_EXTENT(vector,0); - nelem = ((rptr - ret->base_addr) / rstride0); + nelem = ((char*)rptr - (char*)ret->base_addr) / rstride0; if (n > nelem) { - sstride0 = GFC_DESCRIPTOR_STRIDE(vector,0); + sstride0 = GFC_DESCRIPTOR_STRIDE_BYTES(vector,0); if (sstride0 == 0) - sstride0 = 1; + sstride0 = sizeof (GFC_REAL_16); - sptr = vector->base_addr + sstride0 * nelem; + sptr = (const GFC_REAL_16 *sptr) (((char*)vector->base_addr) + sstride0 * nelem); n -= nelem; while (n--) { diff --git a/libgfortran/generated/pack_r17.c b/libgfortran/generated/pack_r17.c index a88caa8f4d6b..796df84d5669 100644 --- a/libgfortran/generated/pack_r17.c +++ b/libgfortran/generated/pack_r17.c @@ -130,7 +130,7 @@ pack_r17 (gfc_array_r17 *ret, const gfc_array_r17 *array, mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); } if (sstride[0] == 0) - sstride[0] = GFC_DESCRIPTOR_SIZE(array); + sstride[0] = sizeof (GFC_REAL_17); if (mstride[0] == 0) mstride[0] = mask_kind; @@ -189,7 +189,7 @@ pack_r17 (gfc_array_r17 *ret, const gfc_array_r17 *array, rstride0 = GFC_DESCRIPTOR_STRIDE_BYTES(ret,0); if (rstride0 == 0) - rstride0 = GFC_DESCRIPTOR_SIZE(ret); + rstride0 = sizeof (GFC_REAL_17); sstride0 = sstride[0]; mstride0 = mstride[0]; rptr = ret->base_addr; @@ -237,14 +237,14 @@ pack_r17 (gfc_array_r17 *ret, const gfc_array_r17 *array, if (vector) { n = GFC_DESCRIPTOR_EXTENT(vector,0); - nelem = ((rptr - ret->base_addr) / rstride0); + nelem = ((char*)rptr - (char*)ret->base_addr) / rstride0; if (n > nelem) { - sstride0 = GFC_DESCRIPTOR_STRIDE(vector,0); + sstride0 = GFC_DESCRIPTOR_STRIDE_BYTES(vector,0); if (sstride0 == 0) - sstride0 = 1; + sstride0 = sizeof (GFC_REAL_17); - sptr = vector->base_addr + sstride0 * nelem; + sptr = (const GFC_REAL_17 *sptr) (((char*)vector->base_addr) + sstride0 * nelem); n -= nelem; while (n--) { diff --git a/libgfortran/generated/pack_r4.c b/libgfortran/generated/pack_r4.c index d68fec2c3daf..422f2f95f6d7 100644 --- a/libgfortran/generated/pack_r4.c +++ b/libgfortran/generated/pack_r4.c @@ -130,7 +130,7 @@ pack_r4 (gfc_array_r4 *ret, const gfc_array_r4 *array, mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); } if (sstride[0] == 0) - sstride[0] = GFC_DESCRIPTOR_SIZE(array); + sstride[0] = sizeof (GFC_REAL_4); if (mstride[0] == 0) mstride[0] = mask_kind; @@ -189,7 +189,7 @@ pack_r4 (gfc_array_r4 *ret, const gfc_array_r4 *array, rstride0 = GFC_DESCRIPTOR_STRIDE_BYTES(ret,0); if (rstride0 == 0) - rstride0 = GFC_DESCRIPTOR_SIZE(ret); + rstride0 = sizeof (GFC_REAL_4); sstride0 = sstride[0]; mstride0 = mstride[0]; rptr = ret->base_addr; @@ -237,14 +237,14 @@ pack_r4 (gfc_array_r4 *ret, const gfc_array_r4 *array, if (vector) { n = GFC_DESCRIPTOR_EXTENT(vector,0); - nelem = ((rptr - ret->base_addr) / rstride0); + nelem = ((char*)rptr - (char*)ret->base_addr) / rstride0; if (n > nelem) { - sstride0 = GFC_DESCRIPTOR_STRIDE(vector,0); + sstride0 = GFC_DESCRIPTOR_STRIDE_BYTES(vector,0); if (sstride0 == 0) - sstride0 = 1; + sstride0 = sizeof (GFC_REAL_4); - sptr = vector->base_addr + sstride0 * nelem; + sptr = (const GFC_REAL_4 *sptr) (((char*)vector->base_addr) + sstride0 * nelem); n -= nelem; while (n--) { diff --git a/libgfortran/generated/pack_r8.c b/libgfortran/generated/pack_r8.c index c421518612bd..4f00c9f89ccc 100644 --- a/libgfortran/generated/pack_r8.c +++ b/libgfortran/generated/pack_r8.c @@ -130,7 +130,7 @@ pack_r8 (gfc_array_r8 *ret, const gfc_array_r8 *array, mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); } if (sstride[0] == 0) - sstride[0] = GFC_DESCRIPTOR_SIZE(array); + sstride[0] = sizeof (GFC_REAL_8); if (mstride[0] == 0) mstride[0] = mask_kind; @@ -189,7 +189,7 @@ pack_r8 (gfc_array_r8 *ret, const gfc_array_r8 *array, rstride0 = GFC_DESCRIPTOR_STRIDE_BYTES(ret,0); if (rstride0 == 0) - rstride0 = GFC_DESCRIPTOR_SIZE(ret); + rstride0 = sizeof (GFC_REAL_8); sstride0 = sstride[0]; mstride0 = mstride[0]; rptr = ret->base_addr; @@ -237,14 +237,14 @@ pack_r8 (gfc_array_r8 *ret, const gfc_array_r8 *array, if (vector) { n = GFC_DESCRIPTOR_EXTENT(vector,0); - nelem = ((rptr - ret->base_addr) / rstride0); + nelem = ((char*)rptr - (char*)ret->base_addr) / rstride0; if (n > nelem) { - sstride0 = GFC_DESCRIPTOR_STRIDE(vector,0); + sstride0 = GFC_DESCRIPTOR_STRIDE_BYTES(vector,0); if (sstride0 == 0) - sstride0 = 1; + sstride0 = sizeof (GFC_REAL_8); - sptr = vector->base_addr + sstride0 * nelem; + sptr = (const GFC_REAL_8 *sptr) (((char*)vector->base_addr) + sstride0 * nelem); n -= nelem; while (n--) { diff --git a/libgfortran/m4/pack.m4 b/libgfortran/m4/pack.m4 index bd1f83cd3be8..accbbfcd4b98 100644 --- a/libgfortran/m4/pack.m4 +++ b/libgfortran/m4/pack.m4 @@ -131,7 +131,7 @@ pack_'rtype_code` ('rtype` *ret, const 'rtype` *array, mstride[n] = GFC_DESCRIPTOR_STRIDE_BYTES(mask,n); } if (sstride[0] == 0) - sstride[0] = GFC_DESCRIPTOR_SIZE(array); + sstride[0] = sizeof ('rtype_name`); if (mstride[0] == 0) mstride[0] = mask_kind; @@ -190,7 +190,7 @@ pack_'rtype_code` ('rtype` *ret, const 'rtype` *array, rstride0 = GFC_DESCRIPTOR_STRIDE_BYTES(ret,0); if (rstride0 == 0) - rstride0 = GFC_DESCRIPTOR_SIZE(ret); + rstride0 = sizeof ('rtype_name`); sstride0 = sstride[0]; mstride0 = mstride[0]; rptr = ret->base_addr; @@ -238,14 +238,14 @@ pack_'rtype_code` ('rtype` *ret, const 'rtype` *array, if (vector) { n = GFC_DESCRIPTOR_EXTENT(vector,0); - nelem = ((rptr - ret->base_addr) / rstride0); + nelem = ((char*)rptr - (char*)ret->base_addr) / rstride0; if (n > nelem) { - sstride0 = GFC_DESCRIPTOR_STRIDE(vector,0); + sstride0 = GFC_DESCRIPTOR_STRIDE_BYTES(vector,0); if (sstride0 == 0) - sstride0 = 1; + sstride0 = sizeof ('rtype_name`); - sptr = vector->base_addr + sstride0 * nelem; + sptr = (const 'rtype_name` *) (((char*)vector->base_addr) + sstride0 * nelem); n -= nelem; while (n--) {
