[rfc]: Replace current_gdbarch in hppa
Ulrich Weigand
uweigand@de.ibm.com
Fri Feb 15 18:39:00 GMT 2008
Markus Deuling wrote:
> * hppa-tdep.h (find_global_pointer): Add gdbarch as parameter.
>
> * hppa-hpux-tdep.c (hppa32_hpux_find_global_pointer): Likewise. Replace
> current_gdbarch by gdbarch.
> (hppa64_hpux_find_global_pointer): Likewise.
> * hppa-tdep.c (hppa_find_global_pointer): Likewise.
> (hppa32_push_dummy_call, hppa64_push_dummy_call): Update call for
> find_global_pointer.
>
> * hppabsd-tdep.c (hppabsd_find_global_pointer): Add gdbarch as
> parameter.
> * hppa-linux-tdep.c (hppa_linux_find_global_pointer): Likewise.
>
> * hppa-linux-nat.c (hppa_linux_register_addr): Add gdbarch as parameter.
> (fetch_register, store_register): Update call for
> hppa_linux_register_addr.
>
> * hppa-hpux-tdep.c (hppa_hpux_sr_for_addr): Add gdbarch as parameter and
> replace current_gdbarch by gdbarch.
> (hppa_hpux_push_dummy_code): Update call for hppa_hpux_sr_for_addr.
Most of these are OK, except:
> diff -urpN src/gdb/hppa-linux-nat.c dev/gdb/hppa-linux-nat.c
> --- src/gdb/hppa-linux-nat.c 2008-01-01 23:53:10.000000000 +0100
> +++ dev/gdb/hppa-linux-nat.c 2008-02-15 06:52:13.000000000 +0100
> @@ -149,11 +149,12 @@ static const int u_offsets[] =
> };
>
> static CORE_ADDR
> -hppa_linux_register_addr (int regno, CORE_ADDR blockend)
> +hppa_linux_register_addr (struct gdbarch *gdbarch, int regno,
> + CORE_ADDR blockend)
> {
> CORE_ADDR addr;
>
> - if ((unsigned) regno >= gdbarch_num_regs (current_gdbarch))
> + if ((unsigned) regno >= gdbarch_num_regs (gdbarch))
> error (_("Invalid register number %d."), regno);
>
> if (u_offsets[regno] == -1)
This is really the wrong check. It should really just verify that
no out-of-bounds access to u_offsets happens, so the line should
just be something like:
if ((unsigned) regno >= ARRAY_SIZE (u_offsets))
Bye,
Ulrich
--
Dr. Ulrich Weigand
GNU Toolchain for Linux on System z and Cell BE
Ulrich.Weigand@de.ibm.com
More information about the Gdb-patches
mailing list