diff options
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 11 | ||||
-rw-r--r-- | gdb/value.c | 30 | ||||
-rw-r--r-- | gdb/value.h | 19 |
3 files changed, 55 insertions, 5 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 452aa1c..fab253a 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,16 @@ 2005-02-07 Andrew Cagney <cagney@gnu.org> + * value.h (deprecated_value_lval_hack) + (deprecated_value_address_hack) + (deprecated_value_internalvar_hack_hack) + (deprecated_value_regnum_hack): Declare. + (VALUE_LVAL, VALUE_ADDRESS, VALUE_INTERNALVAR) + (VALUE_FRAME_ID, VALUE_REGNUM): Use. + * value.c (deprecated_value_lval_hack) + (deprecated_value_address_hack) + (deprecated_value_internalvar_hack_hack) + (deprecated_value_regnum_hack): Define. + * value.h (VALUE_POINTED_TO_OFFSET): Delete. (set_value_pointed_to_offset, value_pointed_to_offset): Declare. * value.c (set_value_pointed_to_offset): Define diff --git a/gdb/value.c b/gdb/value.c index 4bc26ff..1a8796e 100644 --- a/gdb/value.c +++ b/gdb/value.c @@ -234,6 +234,36 @@ set_value_pointed_to_offset (struct value *value, int val) { value->pointed_to_offset = val; } + +enum lval_type * +deprecated_value_lval_hack (struct value *value) +{ + return &value->lval; +} + +CORE_ADDR * +deprecated_value_address_hack (struct value *value) +{ + return &value->location.address; +} + +struct internalvar ** +deprecated_value_internalvar_hack (struct value *value) +{ + return &value->location.internalvar; +} + +struct frame_id * +deprecated_value_frame_id_hack (struct value *value) +{ + return &value->frame_id; +} + +short * +deprecated_value_regnum_hack (struct value *value) +{ + return &value->regnum; +} /* Return a mark in the value chain. All values allocated after the mark is obtained (except for those released) are subject to being freed diff --git a/gdb/value.h b/gdb/value.h index d894252..3905b1a 100644 --- a/gdb/value.h +++ b/gdb/value.h @@ -208,11 +208,6 @@ extern const bfd_byte *value_contents_all (struct value *); extern int value_fetch_lazy (struct value *val); -#define VALUE_LVAL(val) (val)->lval -#define VALUE_ADDRESS(val) (val)->location.address -#define VALUE_INTERNALVAR(val) (val)->location.internalvar -#define VALUE_FRAME_ID(val) ((val)->frame_id) -#define VALUE_REGNUM(val) (val)->regnum extern int value_optimized_out (struct value *value); extern void set_value_optimized_out (struct value *value, int val); extern int value_embedded_offset (struct value *value); @@ -220,6 +215,20 @@ extern void set_value_embedded_offset (struct value *value, int val); extern int value_pointed_to_offset (struct value *value); extern void set_value_pointed_to_offset (struct value *value, int val); +/* While the following fields are per- VALUE .CONTENT .PIECE (i.e., a + single value might have multiple LVALs), this hacked interface is + limited to just the first PIECE. Expect further change. */ +extern enum lval_type *deprecated_value_lval_hack (struct value *); +#define VALUE_LVAL(val) (*deprecated_value_lval_hack (val)) +extern CORE_ADDR *deprecated_value_address_hack (struct value *); +#define VALUE_ADDRESS(val) (*deprecated_value_address_hack (val)) +extern struct internalvar **deprecated_value_internalvar_hack (struct value *); +#define VALUE_INTERNALVAR(val) (*deprecated_value_internalvar_hack (val)) +extern struct frame_id *deprecated_value_frame_id_hack (struct value *); +#define VALUE_FRAME_ID(val) (*deprecated_value_frame_id_hack (val)) +extern short *deprecated_value_regnum_hack (struct value *); +#define VALUE_REGNUM(val) (*deprecated_value_regnum_hack (val)) + /* Convert a REF to the object referenced. */ extern struct value *coerce_ref (struct value *value); |