From 88e3b34b7c23b9a1b84abdca190f2ced0e5c4c02 Mon Sep 17 00:00:00 2001 From: Andrew Cagney Date: Tue, 8 Feb 2005 00:25:31 +0000 Subject: [PATCH] 2005-02-07 Andrew Cagney * value.h (deprecated_set_value_modifiable) (deprecated_value_modifiable): Declare. * value.c (deprecated_set_value_modifiable): Define. (deprecated_value_modifiable): Define. * ada-lang.c, valops.c, breakpoint.c, tracepoint.c: Update. --- gdb/ChangeLog | 6 ++++++ gdb/ada-lang.c | 2 +- gdb/breakpoint.c | 2 +- gdb/tracepoint.c | 4 ++-- gdb/valops.c | 2 +- gdb/value.c | 15 +++++++++++---- gdb/value.h | 11 +++++++---- 7 files changed, 29 insertions(+), 13 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index fca3e11..9db3091 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,11 @@ 2005-02-07 Andrew Cagney + * value.h (deprecated_set_value_modifiable) + (deprecated_value_modifiable): Declare. + * value.c (deprecated_set_value_modifiable): Define. + (deprecated_value_modifiable): Define. + * ada-lang.c, valops.c, breakpoint.c, tracepoint.c: Update. + * value.h (deprecated_set_value_type): Declare. * value.c (deprecated_set_value_type): Define. * hpacc-abi.c, gnu-v2-abi.c, cp-valprint.c: Update. diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c index 3526505..b3bed52 100644 --- a/gdb/ada-lang.c +++ b/gdb/ada-lang.c @@ -2008,7 +2008,7 @@ ada_value_assign (struct value *toval, struct value *fromval) struct type *type = value_type (toval); int bits = value_bitsize (toval); - if (!toval->modifiable) + if (!deprecated_value_modifiable (toval)) error (_("Left operand of assignment is not a modifiable lvalue.")); toval = coerce_ref (toval); diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c index 8c0d429..645fd03 100644 --- a/gdb/breakpoint.c +++ b/gdb/breakpoint.c @@ -5821,7 +5821,7 @@ can_use_hardware_watchpoint (struct value *v) } } } - else if (v->lval != not_lval && v->modifiable == 0) + else if (v->lval != not_lval && deprecated_value_modifiable (v) == 0) return 0; /* ??? What does this represent? */ else if (v->lval == lval_register) return 0; /* cannot watch a register with a HW watchpoint */ diff --git a/gdb/tracepoint.c b/gdb/tracepoint.c index 6de409e..6faec3e 100644 --- a/gdb/tracepoint.c +++ b/gdb/tracepoint.c @@ -300,7 +300,7 @@ set_traceframe_context (CORE_ADDR trace_pc) memcpy (value_contents_raw (func_val), DEPRECATED_SYMBOL_NAME (traceframe_fun), len); - func_val->modifiable = 0; + deprecated_set_value_modifiable (func_val, 0); set_internalvar (lookup_internalvar ("trace_func"), func_val); } @@ -322,7 +322,7 @@ set_traceframe_context (CORE_ADDR trace_pc) memcpy (value_contents_raw (file_val), traceframe_sal.symtab->filename, len); - file_val->modifiable = 0; + deprecated_set_value_modifiable (file_val, 0); set_internalvar (lookup_internalvar ("trace_file"), file_val); } } diff --git a/gdb/valops.c b/gdb/valops.c index 56e4645..de1b1a7 100644 --- a/gdb/valops.c +++ b/gdb/valops.c @@ -521,7 +521,7 @@ value_assign (struct value *toval, struct value *fromval) struct value *val; struct frame_id old_frame; - if (!toval->modifiable) + if (!deprecated_value_modifiable (toval)) error ("Left operand of assignment is not a modifiable lvalue."); toval = coerce_ref (toval); diff --git a/gdb/value.c b/gdb/value.c index e338dd2..13585b5 100644 --- a/gdb/value.c +++ b/gdb/value.c @@ -21,10 +21,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* Hack so that value.h can detect when it's being included by - value.c. */ -#define VALUE_C - #include "defs.h" #include "gdb_string.h" #include "symtab.h" @@ -273,6 +269,17 @@ deprecated_value_regnum_hack (struct value *value) { return &value->regnum; } + +int +deprecated_value_modifiable (struct value *value) +{ + return value->modifiable; +} +void +deprecated_set_value_modifiable (struct value *value, int modifiable) +{ + value->modifiable = modifiable; +} /* 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 762f1f2..172e3f9 100644 --- a/gdb/value.h +++ b/gdb/value.h @@ -80,11 +80,7 @@ struct value struct frame_id frame_id; /* Type of the value. */ -#ifdef VALUE_C struct type *type; -#else - struct type *xtype; -#endif /* If a value represents a C++ object, then the `type' field gives the object's compile-time type. If the object actually belongs @@ -187,6 +183,13 @@ extern int value_bitsize (struct value *); extern int value_bitpos (struct value *); extern int value_offset (struct value *); +/* The comment from "struct value" reads: ``Is it modifiable? Only + relevant if lval != not_lval.''. Shouldn't the value instead be + not_lval and be done with it? */ +extern int deprecated_value_modifiable (struct value *value); +extern void deprecated_set_value_modifiable (struct value *value, + int modifiable); + extern struct type *value_enclosing_type (struct value *); extern int value_lazy (struct value *); extern void set_value_lazy (struct value *value, int val); -- 2.7.4