[binutils-gdb] opcodes: fix Werror=format build breaker in opcodes/riscv-dis.c

Tom de Vries vries@sourceware.org
Sun Nov 24 08:20:38 GMT 2024


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=620651665318e9ac655c7fa189ee297e2bc02e97

commit 620651665318e9ac655c7fa189ee297e2bc02e97
Author: Tom de Vries <tdevries@suse.de>
Date:   Sun Nov 24 09:21:28 2024 +0100

    opcodes: fix Werror=format build breaker in opcodes/riscv-dis.c
    
    I build gdb on arm-linux and ran into:
    ...
      CC       riscv-dis.lo
    opcodes/riscv-dis.c: In function ‘print_insn_args’:
    opcodes/riscv-dis.c:743:29: error: format ‘%lu’ expects argument of type \
      ‘long unsigned int’, but argument 4 has type ‘insn_t’ \
      {aka ‘long long unsigned int’} [-Werror=format=]
      743 |                          "%lu", EXTRACT_ZCMT_INDEX (l));
          |                           ~~^
          |                             |
          |                             long unsigned int
          |                           %llu
    ...
    
    Fix this by printing the insn_t value, which is a uint64_t, using PRIu64.
    
    Tested by finishing the build.

Diff:
---
 opcodes/riscv-dis.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/opcodes/riscv-dis.c b/opcodes/riscv-dis.c
index 101380f93aa..c1212b14a05 100644
--- a/opcodes/riscv-dis.c
+++ b/opcodes/riscv-dis.c
@@ -740,7 +740,7 @@ print_insn_args (const char *oparg, insn_t l, bfd_vma pc, disassemble_info *info
 		case 'i':
 		case 'I':
 		  print (info->stream, dis_style_address_offset,
-			 "%lu", EXTRACT_ZCMT_INDEX (l));
+			 "%" PRIu64, EXTRACT_ZCMT_INDEX (l));
 		  break;
 		default:
 		  goto undefined_modifier;


More information about the Binutils-cvs mailing list