diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 1a525bc96c..834ed23377 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2004-11-21 Daniel Jacobowitz + + * valarith.c (value_subscript): Copy VALUE_FRAME_ID. + (value_subscripted_rvalue): Likewise. + * valops.c (search_struct_field, value_slice): Likewise. + 2004-11-21 Mark Kettenis * inf-ptrace.c: Don't include "regcache.h" and "gdbcmd.h". diff --git a/gdb/valarith.c b/gdb/valarith.c index ea93ea1111..00f20e16c4 100644 --- a/gdb/valarith.c +++ b/gdb/valarith.c @@ -239,6 +239,7 @@ value_subscript (struct value *array, struct value *idx) if (VALUE_LVAL (array) == lval_internalvar) VALUE_LVAL (v) = lval_internalvar_component; VALUE_ADDRESS (v) = VALUE_ADDRESS (array); + VALUE_FRAME_ID (v) = VALUE_FRAME_ID (array); v->offset = offset + value_offset (array); return v; } @@ -278,6 +279,7 @@ value_subscripted_rvalue (struct value *array, struct value *idx, int lowerbound VALUE_LVAL (v) = VALUE_LVAL (array); VALUE_ADDRESS (v) = VALUE_ADDRESS (array); VALUE_REGNUM (v) = VALUE_REGNUM (array); + VALUE_FRAME_ID (v) = VALUE_FRAME_ID (array); v->offset = value_offset (array) + elt_offs; return v; } diff --git a/gdb/valops.c b/gdb/valops.c index fa63871a53..c708fac590 100644 --- a/gdb/valops.c +++ b/gdb/valops.c @@ -1307,6 +1307,7 @@ search_struct_field (char *name, struct value *arg1, int offset, { VALUE_LVAL (v2) = VALUE_LVAL (arg1); VALUE_ADDRESS (v2) = VALUE_ADDRESS (arg1); + VALUE_FRAME_ID (v2) = VALUE_FRAME_ID (arg1); v2->offset = value_offset (arg1) + boffset; if (VALUE_LAZY (arg1)) VALUE_LAZY (v2) = 1; @@ -2768,6 +2769,7 @@ value_slice (struct value *array, int lowbound, int length) else VALUE_LVAL (slice) = VALUE_LVAL (array); VALUE_ADDRESS (slice) = VALUE_ADDRESS (array); + VALUE_FRAME_ID (slice) = VALUE_FRAME_ID (array); slice->offset = value_offset (array) + offset; } return slice;