From: Andrew Burgess Date: Mon, 12 Mar 2018 21:41:42 +0000 (+0000) Subject: gdb/riscv: Fix some ARI issues X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=89a3b63e52be3e9bcf4b3d15e210652a5cb839c5;p=binutils-gdb.git gdb/riscv: Fix some ARI issues Fix some ARI issues in recently added riscv code, the ARI email is: https://sourceware.org/ml/gdb-patches/2018-03/msg00156.html gdb/ChangeLog: * riscv-tdep.c (riscv_sw_breakpoint_from_kind): Add localization to error message string. (riscv_register_name): Use xsnprintf instead of sprintf. (riscv_insn::fetch_instruction): Use gdb_assert instead of internal_error. (riscv_print_arg_location): Use gdb_assert_not_reached instead of error. (riscv_push_dummy_call): Likewise. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index a783a5d2980..e0f599a3be2 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,14 @@ +2018-03-12 Andrew Burgess + + * riscv-tdep.c (riscv_sw_breakpoint_from_kind): Add localization + to error message string. + (riscv_register_name): Use xsnprintf instead of sprintf. + (riscv_insn::fetch_instruction): Use gdb_assert instead of + internal_error. + (riscv_print_arg_location): Use gdb_assert_not_reached instead of + error. + (riscv_push_dummy_call): Likewise. + 2018-03-12 Tom Tromey * rs6000-aix-tdep.c (rs6000_aix_core_xfer_shared_libraries_aix): diff --git a/gdb/riscv-tdep.c b/gdb/riscv-tdep.c index 11b12279321..655db7cce69 100644 --- a/gdb/riscv-tdep.c +++ b/gdb/riscv-tdep.c @@ -446,7 +446,7 @@ riscv_sw_breakpoint_from_kind (struct gdbarch *gdbarch, int kind, int *size) case 4: return ebreak; default: - gdb_assert_not_reached ("unhandled breakpoint kind"); + gdb_assert_not_reached (_("unhandled breakpoint kind")); } } @@ -481,7 +481,8 @@ riscv_register_name (struct gdbarch *gdbarch, int regnum) { static char buf[20]; - sprintf (buf, "csr%d", regnum - RISCV_FIRST_CSR_REGNUM); + xsnprintf (buf, sizeof (buf), "csr%d", + regnum - RISCV_FIRST_CSR_REGNUM); return buf; } @@ -1049,12 +1050,10 @@ riscv_insn::fetch_instruction (struct gdbarch *gdbarch, /* If we need more, grab it now. */ instlen = riscv_insn_length (buf[0]); + gdb_assert (instlen <= sizeof (buf)); *len = instlen; - if (instlen > sizeof (buf)) - internal_error (__FILE__, __LINE__, - _("%s: riscv_insn_length returned %i"), - __func__, instlen); - else if (instlen > 2) + + if (instlen > 2) { status = target_read_memory (addr + 2, buf + 2, instlen - 2); if (status) @@ -2009,7 +2008,7 @@ riscv_print_arg_location (ui_file *stream, struct gdbarch *gdbarch, break; default: - error ("unknown argument location type"); + gdb_assert_not_reached (_("unknown argument location type")); } } @@ -2149,7 +2148,7 @@ riscv_push_dummy_call (struct gdbarch *gdbarch, break; default: - error ("unknown argument location type"); + gdb_assert_not_reached (_("unknown argument location type")); } if (second_arg_length > 0)