]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
libgfortran: Fix build for targets with int32_t=long int
authorHans-Peter Nilsson <hp@axis.com>
Mon, 23 Dec 2024 23:07:54 +0000 (00:07 +0100)
committerHans-Peter Nilsson <hp@bitrange.com>
Tue, 24 Dec 2024 00:13:02 +0000 (01:13 +0100)
Without this, after r15-6415-g586477d67bf2e3, you'll see,
for targets where int32_t is a typedef of long int (beware
of artificially broken lines):

/x/gcc/libgfortran/caf/single.c: In function '_gfortran_caf_get_by_ct':
/x/gcc/libgfortran/caf/single.c:2943:56: error: passing argument 2 of '\
(accessor_hash_table + (sizetype)((unsigned int)getter_index * 12))->ac\
cessor' from incompatible pointer type [-Wincompatible-pointer-types]
 2943 |   accessor_hash_table[getter_index].accessor (dst_ptr, &free_bu\
ffer, src_ptr,
      |                                                        ^~~~~~~~\
~~~~
      |                                                        |
      |                                                        int *
/x/gcc/libgfortran/caf/single.c:2943:56: note: expected 'int32_t *' {ak\
a 'long int *'} but argument is of type 'int *'

libgfortran:
* caf/single.c (_gfortran_caf_get_by_ct): Correct type of free_buffer
to int32_t.

libgfortran/caf/single.c

index f5414ff1f7ef7592a3cc95e420b031f580c45ea9..23ad44e1c16254d1c0076660065b8ca8d3d74556 100644 (file)
@@ -2927,7 +2927,7 @@ _gfortran_caf_get_by_ct (
 {
   caf_single_token_t single_token = TOKEN (token);
   void *src_ptr = opt_src_desc ? (void *) opt_src_desc : single_token->memptr;
-  int free_buffer;
+  int32_t free_buffer;
   void *dst_ptr = opt_dst_desc ? (void *)opt_dst_desc : dst_data;
   void *old_dst_data_ptr = NULL;