diff --git a/gdb/ChangeLog b/gdb/ChangeLog index f053ca346f1..3cc9a206113 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2007-01-23 Vladimir Prus + + * value.c (value_primitive_field): Copy the full 'location' + contents, instead of assuming that copying ADDRESS will + bring over everything in the union. Remove obsolete comment. + 2007-01-23 Masaki Muranaka * m32c-tdep.c (make_regs, m32c_analyze_prologue) diff --git a/gdb/value.c b/gdb/value.c index c6b9ca98243..ffb70fbe420 100644 --- a/gdb/value.c +++ b/gdb/value.c @@ -1343,11 +1343,9 @@ value_primitive_field (struct value *arg1, int offset, VALUE_LVAL (v) = VALUE_LVAL (arg1); if (VALUE_LVAL (arg1) == lval_internalvar) VALUE_LVAL (v) = lval_internalvar_component; - VALUE_ADDRESS (v) = VALUE_ADDRESS (arg1); + v->location = arg1->location; 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; }