This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [RFA] MIPS16 FP manual call/return fixes
- From: Jan Kratochvil <jan dot kratochvil at redhat dot com>
- To: "Maciej W. Rozycki" <macro at codesourcery dot com>
- Cc: Tom Tromey <tromey at redhat dot com>, gdb-patches at sourceware dot org
- Date: Tue, 1 May 2012 16:04:57 +0200
- Subject: Re: [RFA] MIPS16 FP manual call/return fixes
- References: <alpine.DEB.1.10.1204231321310.19835@tp.orcam.me.uk> <87mx5y70mv.fsf@fleche.redhat.com> <alpine.DEB.1.10.1204302156230.19835@tp.orcam.me.uk>
On Mon, 30 Apr 2012 23:42:44 +0200, Maciej W. Rozycki wrote:
> + find_pc_partial_function_gnu_ifunc (b->loc->address, NULL,
> + &func_func_addr, NULL, &is_gnu_ifunc);
> + gdb_assert (is_gnu_ifunc);
Please remove that gdb_assert and fall back somehow, IMO just pass FUNCTION as
NULL in such case. Any resolving ADDRESS->SYMBOL can be ambiguous with weird
symbol files and it may find some overlapping non-IFUNC symbol instead.
Also user may have unloaded symbol files in the middle of the debugging etc.
Otherwise OK from me for the IFUNC part.
FYI getting with your original patch:
bfin-tdep.c: In function 'bfin_gdbarch_init':
bfin-tdep.c:841:3: error: passing argument 2 of 'set_gdbarch_return_value' from incompatible pointer type [-Werror]
In file included from defs.h:945:0,
from bfin-tdep.c:22:
gdbarch.h:452:13: note: expected 'enum return_value_convention (*)(struct gdbarch *, struct value *, struct type *, struct regcache *, gdb_byte *, const gdb_byte *)' but argument is of type 'enum return_value_convention (*)(struct gdbarch *, struct type *, struct type *, struct regcache *, gdb_byte *, const gdb_byte *)'
So maybe your patch I used is already obsolete or be sure you run with
"--enable-64-bit-bfd --enable-targets=all".
Thanks,
Jan