]> git.ipfire.org Git - thirdparty/gcc.git/commit
a68: Fix algol68 build on i686-linux
authorJakub Jelinek <jakub@redhat.com>
Mon, 1 Dec 2025 09:44:48 +0000 (10:44 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Mon, 1 Dec 2025 09:46:18 +0000 (10:46 +0100)
commite69bea9b4ccfe79efeec6e87d7d24e6350f31375
treeffb3c366c050b8c3d9e2b5b3e6bf3c260b78db13
parentc44586acdc6e107de7ceea173aaaacd8b0525153
a68: Fix algol68 build on i686-linux

GCC with enabled algol68 fails to build on i686-linux, the error is
../../gcc/algol68/a68-low-multiples.cc:636:31: error: format ‘%ld’ expects argument of type ‘long int’, but argument 2 has type ‘size_t’ {aka ‘unsigned int’} [-Werror=format=]
xasprintf is printf family, so it can't use %zd portably, so the
following patch uses what is used elsewhere, the HOST_SIZE_T_PRINT*
macros with (fmt_size_t) cast - the macros pick the smallest of
%d, %ld and %lld depending on SIZE_MAX, but it could still disagree
on the exact type and cause warnings or for hosts with say 24-bit
size_t it could be even larger, so the cast is needed to handle that.

2025-12-01  Jakub Jelinek  <jakub@redhat.com>

* algol68/a68-low-multiples.cc (copy_multiple_dimension_elems): Use
HOST_SIZE_T_PRINT_DEC in xasprintf format string and cast to
fmt_size_t.
gcc/algol68/a68-low-multiples.cc