Commit 228f72b90f for qemu.org

commit 228f72b90f94ae910cf3e587ad9fd26a065a093a
Author: Cédric Le Goater <clg@redhat.com>
Date:   Mon Jan 12 17:16:26 2026 +0100

    target/riscv: Fix build errors

    Newer gcc compiler (version 16.0.0 20260103 (Red Hat 16.0.0-0) (GCC))
    detects a truncation error:

      ../target/riscv/cpu.c: In function ‘riscv_isa_write_fdt’:
      ../target/riscv/cpu.c:2916:35: error: ‘%d’ directive output may be truncated writing between 1 and 11 bytes into a region of size 5 [-Werror=format-truncation=]
       2916 |     snprintf(isa_base, maxlen, "rv%di", xlen);
            |                                   ^~
      ../target/riscv/cpu.c:2916:32: note: directive argument in the range [-2147483648, 2147483632]
       2916 |     snprintf(isa_base, maxlen, "rv%di", xlen);
            |                                ^~~~~~~

    Since the xlen variable represents the register width (32, 64, 128) in
    the RISC-V base ISA name, mask its value with a 8-bit bitmask to
    satisfy the size constraints on the snprintf output.

    Cc: Palmer Dabbelt <palmer@dabbelt.com>
    Cc: Alistair Francis <alistair.francis@wdc.com>
    Cc: Weiwei Li <liwei1518@gmail.com>
    Cc: Daniel Henrique Barboza <dbarboza@ventanamicro.com>
    Cc: Liu Zhiwei <zhiwei_liu@linux.alibaba.com>
    Reviewed-by: Daniel Henrique Barboza <daniel.barboza@oss.qualcomm.com>
    Link: https://lore.kernel.org/qemu-devel/20260112161626.1232639-1-clg@redhat.com
    Signed-off-by: Cédric Le Goater <clg@redhat.com>

diff --git a/target/riscv/cpu.c b/target/riscv/cpu.c
index ffd98e8eed..e95eea0249 100644
--- a/target/riscv/cpu.c
+++ b/target/riscv/cpu.c
@@ -2913,7 +2913,7 @@ void riscv_isa_write_fdt(RISCVCPU *cpu, void *fdt, char *nodename)
     riscv_isa = riscv_isa_string(cpu);
     qemu_fdt_setprop_string(fdt, nodename, "riscv,isa", riscv_isa);

-    snprintf(isa_base, maxlen, "rv%di", xlen);
+    snprintf(isa_base, maxlen, "rv%di", xlen & 0xFF);
     qemu_fdt_setprop_string(fdt, nodename, "riscv,isa-base", isa_base);

     isa_extensions = riscv_isa_extensions_list(cpu, &count);