From: Andrew Cagney Date: Mon, 15 Nov 2004 22:17:59 +0000 (+0000) Subject: 2004-11-15 Andrew Cagney X-Git-Tag: newlib-1_13_0~267 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=3f818b4efe9e0432d69596edc5e158e983c99428;p=pf3gnuchains%2Fpf3gnuchains4x.git 2004-11-15 Andrew Cagney * findvar.c (value_of_register): Set the frame ID. * value.c (value_primitive_field): Copy the frame ID. * valops.c (value_assign): Simplify lval_register case, there's always a frame. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 30fe24a2fb..8fc5cc1ba0 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,10 @@ +2004-11-15 Andrew Cagney + + * findvar.c (value_of_register): Set the frame ID. + * value.c (value_primitive_field): Copy the frame ID. + * valops.c (value_assign): Simplify lval_register case, there's + always a frame. + 2004-11-14 Daniel Jacobowitz * Makefile.in (mips-linux-tdep.o): Update dependencies. diff --git a/gdb/findvar.c b/gdb/findvar.c index 487d25eefa..cc7d7a5b65 100644 --- a/gdb/findvar.c +++ b/gdb/findvar.c @@ -288,6 +288,7 @@ value_of_register (int regnum, struct frame_info *frame) VALUE_ADDRESS (reg_val) = addr; VALUE_REGNUM (reg_val) = regnum; VALUE_OPTIMIZED_OUT (reg_val) = optim; + VALUE_FRAME_ID (reg_val) = get_frame_id (frame); return reg_val; } diff --git a/gdb/valops.c b/gdb/valops.c index 40290d4a72..fa63871a53 100644 --- a/gdb/valops.c +++ b/gdb/valops.c @@ -602,16 +602,8 @@ value_assign (struct value *toval, struct value *fromval) int value_reg; /* Figure out which frame this is in currently. */ - if (VALUE_LVAL (toval) == lval_register) - { - frame = get_current_frame (); - value_reg = VALUE_REGNUM (toval); - } - else - { - frame = frame_find_by_id (VALUE_FRAME_ID (toval)); - value_reg = VALUE_REGNUM (toval); - } + frame = frame_find_by_id (VALUE_FRAME_ID (toval)); + value_reg = VALUE_REGNUM (toval); if (!frame) error ("Value being assigned to is no longer active."); diff --git a/gdb/value.c b/gdb/value.c index 2bbaeaca7e..5afc5b447c 100644 --- a/gdb/value.c +++ b/gdb/value.c @@ -964,6 +964,7 @@ value_primitive_field (struct value *arg1, int offset, VALUE_LVAL (v) = lval_internalvar_component; VALUE_ADDRESS (v) = VALUE_ADDRESS (arg1); VALUE_REGNUM (v) = VALUE_REGNUM (arg1); + VALUE_FRAME_ID (v) = VALUE_FRAME_ID (arg1); /* VALUE_OFFSET (v) = VALUE_OFFSET (arg1) + offset + TYPE_FIELD_BITPOS (arg_type, fieldno) / 8; */ return v;