X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=libgfortran%2Fgenerated%2Fsum_i8.c;h=012a97c50cc97f62dd2a11a0e06642a214776479;hb=7adcbafe45f8001b698967defe682687b52c0007;hp=6fb7d9b967cf258613719b9e1407aa6a34a36c8c;hpb=fa3c4d47b961d8be02e62345d2122b93ad077207;p=thirdparty%2Fgcc.git diff --git a/libgfortran/generated/sum_i8.c b/libgfortran/generated/sum_i8.c index 6fb7d9b967cf..012a97c50cc9 100644 --- a/libgfortran/generated/sum_i8.c +++ b/libgfortran/generated/sum_i8.c @@ -1,5 +1,5 @@ /* Implementation of the SUM intrinsic - Copyright (C) 2002-2018 Free Software Foundation, Inc. + Copyright (C) 2002-2022 Free Software Foundation, Inc. Contributed by Paul Brook This file is part of the GNU Fortran 95 runtime library (libgfortran). @@ -100,7 +100,7 @@ sum_i8 (gfc_array_i8 * const restrict retarray, } retarray->offset = 0; - GFC_DTYPE_COPY_SETRANK(retarray,array,rank); + retarray->dtype.rank = rank; alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; @@ -150,8 +150,10 @@ sum_i8 (gfc_array_i8 * const restrict retarray, *dest = 0; else { +#if ! defined HAVE_BACK_ARG for (n = 0; n < len; n++, src += delta) { +#endif result += *src; } @@ -218,6 +220,16 @@ msum_i8 (gfc_array_i8 * const restrict retarray, index_type mdelta; int mask_kind; + if (mask == NULL) + { +#ifdef HAVE_BACK_ARG + sum_i8 (retarray, array, pdim, back); +#else + sum_i8 (retarray, array, pdim); +#endif + return; + } + dim = (*pdim) - 1; rank = GFC_DESCRIPTOR_RANK (array) - 1; @@ -287,7 +299,7 @@ msum_i8 (gfc_array_i8 * const restrict retarray, alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1]; retarray->offset = 0; - GFC_DTYPE_COPY_SETRANK(retarray,array,rank); + retarray->dtype.rank = rank; if (alloc_size == 0) { @@ -397,9 +409,13 @@ ssum_i8 (gfc_array_i8 * const restrict retarray, index_type dim; - if (*mask) + if (mask == NULL || *mask) { +#ifdef HAVE_BACK_ARG + sum_i8 (retarray, array, pdim, back); +#else sum_i8 (retarray, array, pdim); +#endif return; } /* Make dim zero based to avoid confusion. */ @@ -446,7 +462,7 @@ ssum_i8 (gfc_array_i8 * const restrict retarray, } retarray->offset = 0; - GFC_DTYPE_COPY_SETRANK(retarray,array,rank); + retarray->dtype.rank = rank; alloc_size = GFC_DESCRIPTOR_STRIDE(retarray,rank-1) * extent[rank-1];