This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFA] MIPS16 FP manual call/return fixes


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]