Mark Kettenis kettenis@gnu.org
Sat Dec 4 11:27:00 GMT 2004

   Date: Fri, 3 Dec 2004 16:00:18 -0800
   From: Randolph Chung <randolph@tausq.org>

   I've committed the following.

Hmm.  There is a bit of an inconsistency with signed/unsigned in the code:

    static CORE_ADDR
    hppa_unwind_pc (struct gdbarch *gdbarch, struct frame_info *next_frame)
   -  return frame_unwind_register_signed (next_frame, HPPA_PCOQ_HEAD_REGNUM) & ~3;
   +  ULONGEST ipsw;
   +  CORE_ADDR pc;
   +  ipsw = frame_unwind_register_signed (next_frame, HPPA_IPSW_REGNUM);
   +  pc = frame_unwind_register_signed (next_frame, HPPA_PCOQ_HEAD_REGNUM) & ~3;

Here you declare `ipsw' as ULONGEST (which is unsigned) but then use
frame_unwind_register_signed to read it.  Also, AFAIK, addresses
aren't signed on hppa (or at least aren't sign-extended) so there one
should also use frame_unwind_register_unsigned (but that problem was
already there).

These kind of things might cause problems in certain 32x64-bit


More information about the Gdb-patches mailing list