https://gcc.gnu.org/g:45d54c70ec54af889053888897626f6912c512ab

commit r15-8676-g45d54c70ec54af889053888897626f6912c512ab
Author: Hans-Peter Nilsson <h...@axis.com>
Date:   Sat Mar 22 18:27:10 2025 +0100

    libgfortran/intrinsics: Fix build for targets with int32_t=long int
    
    Without this, after r15-8650-g94fa9f4d27bac5, you'll see,
    for targets where GFC_INTEGER_4 alias int32_t is a typedef
    of long int (beware of artificially broken lines):
    
    /x/gcc/libgfortran/intrinsics/reduce.c:269:1: error: conflicting types for 
'reduce_scalar_c'; have 'void(void *, index_type,  parray *, void (*)(void *, 
void *, void *), int *, gfc_array_l4 *, void *, void *, index_type,  
index_type)' {aka 'void(void *, long int,  parray *, void (*)(void *, void *, 
void *), int *, gfc_array_l4 *, void *, void *, long int,  long int)'}
      269 | reduce_scalar_c (void *res,
          | ^~~~~~~~~~~~~~~
    [...] excessive error message verbiage deleted
    /x/gcc/libgfortran/intrinsics/reduce.c: In function 'reduce_scalar_c':
    /x/gcc/libgfortran/intrinsics/reduce.c:283:35: error: passing argument 4 of 
'reduce' from incompatible pointer type [-Wincompatible-pointer-types]
      283 |   reduce (&ret, array, operation, dim, mask, identity, ordered);
          |                                   ^~~
          |                                   |
          |                                   int *
    /x/gcc/libgfortran/intrinsics/reduce.c:41:24: note: expected 'GFC_INTEGER_4 
*' {aka 'long int *'} but argument is of type 'int *'
       41 |         GFC_INTEGER_4 *dim,
          |         ~~~~~~~~~~~~~~~^~~
    make[3]: *** [Makefile:4678: intrinsics/reduce.lo] Error 1
    
    libgfortran:
            * intrinsics/reduce.c (reduce_scalar_c): Correct type of parameter 
DIM.

Diff:
---
 libgfortran/intrinsics/reduce.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libgfortran/intrinsics/reduce.c b/libgfortran/intrinsics/reduce.c
index 63997d874baa..c8950e41fd01 100644
--- a/libgfortran/intrinsics/reduce.c
+++ b/libgfortran/intrinsics/reduce.c
@@ -270,7 +270,7 @@ reduce_scalar_c (void *res,
                 index_type res_strlen __attribute__ ((unused)),
                 parray *array,
                 void (*operation) (void *, void *, void *),
-                int *dim,
+                GFC_INTEGER_4 *dim,
                 gfc_array_l4 *mask,
                 void *identity,
                 void *ordered,

Reply via email to