2004-11-15 Andrew Cagney <cagney@gnu.org>

* 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.
This commit is contained in:
Andrew Cagney 2004-11-15 22:17:59 +00:00
parent 4bd1d37b6f
commit 0c16dd26a8
4 changed files with 11 additions and 10 deletions

View File

@ -1,3 +1,10 @@
2004-11-15 Andrew Cagney <cagney@gnu.org>
* 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 <dan@debian.org>
* Makefile.in (mips-linux-tdep.o): Update dependencies.

View File

@ -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;
}

View File

@ -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.");

View File

@ -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;