aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Cagney <cagney@redhat.com>2005-02-08 00:25:31 +0000
committerAndrew Cagney <cagney@redhat.com>2005-02-08 00:25:31 +0000
commit88e3b34b7c23b9a1b84abdca190f2ced0e5c4c02 (patch)
treeb4d1c12b3492ae50de2325f06346ea1273c59a17
parent8082c5a8f1fefb503b41756677d2f46d65f8eda5 (diff)
downloadfsf-binutils-gdb-88e3b34b7c23b9a1b84abdca190f2ced0e5c4c02.zip
fsf-binutils-gdb-88e3b34b7c23b9a1b84abdca190f2ced0e5c4c02.tar.gz
fsf-binutils-gdb-88e3b34b7c23b9a1b84abdca190f2ced0e5c4c02.tar.bz2
2005-02-07 Andrew Cagney <cagney@gnu.org>
* 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.
-rw-r--r--gdb/ChangeLog6
-rw-r--r--gdb/ada-lang.c2
-rw-r--r--gdb/breakpoint.c2
-rw-r--r--gdb/tracepoint.c4
-rw-r--r--gdb/valops.c2
-rw-r--r--gdb/value.c15
-rw-r--r--gdb/value.h11
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 <cagney@gnu.org>
+ * 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);