mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-03 05:12:28 +08:00
2005-02-07 Andrew Cagney <cagney@gnu.org>
* value.h (set_value_offset): Declare. * value.c (set_value_offset): Declare. * gnu-v2-abi.c, jv-valprint.c, valarith.c, valops.c: Update. * findvar.c: Update.
This commit is contained in:
@ -1,5 +1,10 @@
|
|||||||
2005-02-07 Andrew Cagney <cagney@gnu.org>
|
2005-02-07 Andrew Cagney <cagney@gnu.org>
|
||||||
|
|
||||||
|
* value.h (set_value_offset): Declare.
|
||||||
|
* value.c (set_value_offset): Declare.
|
||||||
|
* gnu-v2-abi.c, jv-valprint.c, valarith.c, valops.c: Update.
|
||||||
|
* findvar.c: Update.
|
||||||
|
|
||||||
* value.h (value_next): Declare.
|
* value.h (value_next): Declare.
|
||||||
* value.c (value_next): Define.
|
* value.c (value_next): Define.
|
||||||
* breakpoint.c: Update.
|
* breakpoint.c: Update.
|
||||||
|
@ -710,9 +710,9 @@ value_from_register (struct type *type, int regnum, struct frame_info *frame)
|
|||||||
if (TARGET_BYTE_ORDER == BFD_ENDIAN_BIG
|
if (TARGET_BYTE_ORDER == BFD_ENDIAN_BIG
|
||||||
&& len < register_size (current_gdbarch, regnum))
|
&& len < register_size (current_gdbarch, regnum))
|
||||||
/* Big-endian, and we want less than full size. */
|
/* Big-endian, and we want less than full size. */
|
||||||
v->offset = register_size (current_gdbarch, regnum) - len;
|
set_value_offset (v, register_size (current_gdbarch, regnum) - len);
|
||||||
else
|
else
|
||||||
v->offset = 0;
|
set_value_offset (v, 0);
|
||||||
memcpy (value_contents_raw (v), value_bytes + value_offset (v), len);
|
memcpy (value_contents_raw (v), value_bytes + value_offset (v), len);
|
||||||
}
|
}
|
||||||
return v;
|
return v;
|
||||||
|
@ -162,7 +162,7 @@ gnuv2_virtual_fn_field (struct value **arg1p, struct fn_field * f, int j,
|
|||||||
if (TYPE_CODE (entry_type) == TYPE_CODE_STRUCT)
|
if (TYPE_CODE (entry_type) == TYPE_CODE_STRUCT)
|
||||||
{
|
{
|
||||||
/* Move the `this' pointer according to the virtual function table. */
|
/* Move the `this' pointer according to the virtual function table. */
|
||||||
arg1->offset += value_as_long (value_field (entry, 0));
|
set_value_offset (arg1, value_offset (arg1) + value_as_long (value_field (entry, 0)));
|
||||||
|
|
||||||
if (!value_lazy (arg1))
|
if (!value_lazy (arg1))
|
||||||
{
|
{
|
||||||
|
@ -163,15 +163,15 @@ java_value_print (struct value *val, struct ui_file *stream, int format,
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
set_value_lazy (v, 1);
|
set_value_lazy (v, 1);
|
||||||
v->offset = 0;
|
set_value_offset (v, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
next_v->offset = value_offset (v);
|
set_value_offset (next_v, value_offset (v));
|
||||||
|
|
||||||
for (reps = 1; i + reps < length; reps++)
|
for (reps = 1; i + reps < length; reps++)
|
||||||
{
|
{
|
||||||
set_value_lazy (next_v, 1);
|
set_value_lazy (next_v, 1);
|
||||||
next_v->offset += TYPE_LENGTH (el_type);
|
set_value_offset (next_v, value_offset (next_v) + TYPE_LENGTH (el_type));
|
||||||
if (memcmp (value_contents (v), value_contents (next_v),
|
if (memcmp (value_contents (v), value_contents (next_v),
|
||||||
TYPE_LENGTH (el_type)) != 0)
|
TYPE_LENGTH (el_type)) != 0)
|
||||||
break;
|
break;
|
||||||
|
@ -240,7 +240,7 @@ value_subscript (struct value *array, struct value *idx)
|
|||||||
VALUE_LVAL (v) = lval_internalvar_component;
|
VALUE_LVAL (v) = lval_internalvar_component;
|
||||||
VALUE_ADDRESS (v) = VALUE_ADDRESS (array);
|
VALUE_ADDRESS (v) = VALUE_ADDRESS (array);
|
||||||
VALUE_FRAME_ID (v) = VALUE_FRAME_ID (array);
|
VALUE_FRAME_ID (v) = VALUE_FRAME_ID (array);
|
||||||
v->offset = offset + value_offset (array);
|
set_value_offset (v, offset + value_offset (array));
|
||||||
return v;
|
return v;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -281,7 +281,7 @@ value_subscripted_rvalue (struct value *array, struct value *idx, int lowerbound
|
|||||||
VALUE_ADDRESS (v) = VALUE_ADDRESS (array);
|
VALUE_ADDRESS (v) = VALUE_ADDRESS (array);
|
||||||
VALUE_REGNUM (v) = VALUE_REGNUM (array);
|
VALUE_REGNUM (v) = VALUE_REGNUM (array);
|
||||||
VALUE_FRAME_ID (v) = VALUE_FRAME_ID (array);
|
VALUE_FRAME_ID (v) = VALUE_FRAME_ID (array);
|
||||||
v->offset = value_offset (array) + elt_offs;
|
set_value_offset (v, value_offset (array) + elt_offs);
|
||||||
return v;
|
return v;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1309,7 +1309,7 @@ search_struct_field (char *name, struct value *arg1, int offset,
|
|||||||
VALUE_LVAL (v2) = VALUE_LVAL (arg1);
|
VALUE_LVAL (v2) = VALUE_LVAL (arg1);
|
||||||
VALUE_ADDRESS (v2) = VALUE_ADDRESS (arg1);
|
VALUE_ADDRESS (v2) = VALUE_ADDRESS (arg1);
|
||||||
VALUE_FRAME_ID (v2) = VALUE_FRAME_ID (arg1);
|
VALUE_FRAME_ID (v2) = VALUE_FRAME_ID (arg1);
|
||||||
v2->offset = value_offset (arg1) + boffset;
|
set_value_offset (v2, value_offset (arg1) + boffset);
|
||||||
if (value_lazy (arg1))
|
if (value_lazy (arg1))
|
||||||
set_value_lazy (v2, 1);
|
set_value_lazy (v2, 1);
|
||||||
else
|
else
|
||||||
@ -2775,7 +2775,7 @@ value_slice (struct value *array, int lowbound, int length)
|
|||||||
VALUE_LVAL (slice) = VALUE_LVAL (array);
|
VALUE_LVAL (slice) = VALUE_LVAL (array);
|
||||||
VALUE_ADDRESS (slice) = VALUE_ADDRESS (array);
|
VALUE_ADDRESS (slice) = VALUE_ADDRESS (array);
|
||||||
VALUE_FRAME_ID (slice) = VALUE_FRAME_ID (array);
|
VALUE_FRAME_ID (slice) = VALUE_FRAME_ID (array);
|
||||||
slice->offset = value_offset (array) + offset;
|
set_value_offset (slice, value_offset (array) + offset);
|
||||||
}
|
}
|
||||||
return slice;
|
return slice;
|
||||||
}
|
}
|
||||||
|
@ -145,6 +145,11 @@ value_offset (struct value *value)
|
|||||||
{
|
{
|
||||||
return value->offset;
|
return value->offset;
|
||||||
}
|
}
|
||||||
|
void
|
||||||
|
set_value_offset (struct value *value, int offset)
|
||||||
|
{
|
||||||
|
value->offset = offset;
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
value_bitpos (struct value *value)
|
value_bitpos (struct value *value)
|
||||||
|
@ -172,7 +172,6 @@ struct value
|
|||||||
them. */
|
them. */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/* Values are stored in a chain, so that they can be deleted easily
|
/* Values are stored in a chain, so that they can be deleted easily
|
||||||
over calls to the inferior. Values assigned to internal variables
|
over calls to the inferior. Values assigned to internal variables
|
||||||
or put into the value history are taken off this list. */
|
or put into the value history are taken off this list. */
|
||||||
@ -186,7 +185,9 @@ extern void deprecated_set_value_type (struct value *value,
|
|||||||
struct type *type);
|
struct type *type);
|
||||||
extern int value_bitsize (struct value *);
|
extern int value_bitsize (struct value *);
|
||||||
extern int value_bitpos (struct value *);
|
extern int value_bitpos (struct value *);
|
||||||
|
|
||||||
extern int value_offset (struct value *);
|
extern int value_offset (struct value *);
|
||||||
|
extern void set_value_offset (struct value *, int offset);
|
||||||
|
|
||||||
/* The comment from "struct value" reads: ``Is it modifiable? Only
|
/* The comment from "struct value" reads: ``Is it modifiable? Only
|
||||||
relevant if lval != not_lval.''. Shouldn't the value instead be
|
relevant if lval != not_lval.''. Shouldn't the value instead be
|
||||||
|
Reference in New Issue
Block a user