https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115958
--- Comment #1 from GCC Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Jakub Jelinek <ja...@gcc.gnu.org>: https://gcc.gnu.org/g:74bcef4cf16b35fe64767c1e8e529bdd229841a3 commit r15-2091-g74bcef4cf16b35fe64767c1e8e529bdd229841a3 Author: Jakub Jelinek <ja...@redhat.com> Date: Wed Jul 17 11:40:03 2024 +0200 varasm: Fix bootstrap after the .base64 changes [PR115958] Apparently there is a -Wsign-compare warning if ptrdiff_t has precision of int, then (t - s + 1 + 2) / 3 * 4 has int type while cnt unsigned int. This doesn't warn if ptrdiff_t has larger precision, say on x86_64 it is 64-bit and so (t - s + 1 + 2) / 3 * 4 has long type and cnt unsigned int. And it doesn't warn when using older binutils (in my tests I've used new binutils on x86_64 and old binutils on i686). Anyway, earlier condition guarantees that t - s is at most 256-ish and t >= s by construction, so we can just cast it to (unsigned) to avoid the warning. 2024-07-17 Jakub Jelinek <ja...@redhat.com> PR other/115958 * varasm.cc (default_elf_asm_output_ascii): Cast t - s to unsigned to avoid -Wsign-compare warnings.