diff options
author | Jim Kingdon <jkingdon@engr.sgi.com> | 1994-03-01 02:20:39 +0000 |
---|---|---|
committer | Jim Kingdon <jkingdon@engr.sgi.com> | 1994-03-01 02:20:39 +0000 |
commit | 30974778c12e8c276c54d7b84471fa2c3c1cd9e3 (patch) | |
tree | 99247aea561fb348c0d1d928495608ddd3cc2b91 /gdb/value.h | |
parent | 2fa73738cf209d54339b057f5e0fcdd879ba2ba4 (diff) | |
download | gdb-30974778c12e8c276c54d7b84471fa2c3c1cd9e3.zip gdb-30974778c12e8c276c54d7b84471fa2c3c1cd9e3.tar.gz gdb-30974778c12e8c276c54d7b84471fa2c3c1cd9e3.tar.bz2 |
* value.h (struct value): Add modifiable field.
* values.c (allocate_value, record_latest_value, value_copy): Set it.
(record_latest_value): Don't mess with VALUE_LVAL of value.
* valops.c (value_assign): Check it. Reword existing error
message on not_lval.
Diffstat (limited to 'gdb/value.h')
-rw-r--r-- | gdb/value.h | 36 |
1 files changed, 21 insertions, 15 deletions
diff --git a/gdb/value.h b/gdb/value.h index dbc0f86..87ead1b 100644 --- a/gdb/value.h +++ b/gdb/value.h @@ -1,5 +1,5 @@ /* Definitions for values of C expressions, for GDB. - Copyright 1986, 1987, 1989, 1992 Free Software Foundation, Inc. + Copyright 1986, 1987, 1989, 1992, 1993, 1994 Free Software Foundation, Inc. This file is part of GDB. @@ -47,6 +47,8 @@ struct value /* Type of value; either not an lval, or one of the various different possible kinds of lval. */ enum lval_type lval; + /* Is it modifiable? Only relevant if lval != not_lval. */ + int modifiable; /* Location of value (if lval). */ union { @@ -102,9 +104,7 @@ struct value union { long contents[1]; double force_double_align; -#ifdef CC_HAS_LONG_LONG - long long force_longlong_align; -#endif + LONGEST force_longlong_align; } aligner; }; @@ -200,7 +200,7 @@ struct fn_field; #endif extern void -print_address_demangle PARAMS ((CORE_ADDR, FILE *, int)); +print_address_demangle PARAMS ((CORE_ADDR, GDB_FILE *, int)); extern LONGEST value_as_long PARAMS ((value val)); @@ -238,6 +238,8 @@ extern value value_of_variable PARAMS ((struct symbol *var, struct block *b)); extern value value_of_register PARAMS ((int regnum)); +extern int symbol_read_needs_frame PARAMS ((struct symbol *)); + /* FIXME: Assumes equivalence of "struct frame_info *" and "FRAME" */ extern value read_var_value PARAMS ((struct symbol *var, struct frame_info *frame)); @@ -310,6 +312,10 @@ extern value value_being_returned PARAMS ((struct type *valtype, char retbuf[REGISTER_BYTES], int struct_return)); +extern value value_in PARAMS ((value element, value set)); + +extern int value_bit_index PARAMS ((struct type *type, char *addr, int index)); + extern int using_struct_return PARAMS ((value function, CORE_ADDR funcaddr, struct type *value_type, int gcc_p)); @@ -420,7 +426,7 @@ extern CORE_ADDR read_register PARAMS ((int regno)); extern void -write_register PARAMS ((int regno, long val)); +write_register PARAMS ((int regno, LONGEST val)); extern void supply_register PARAMS ((int regno, char *val)); @@ -435,7 +441,7 @@ extern void modify_field PARAMS ((char *addr, LONGEST fieldval, int bitpos, int bitsize)); extern void -type_print PARAMS ((struct type *type, char *varstring, FILE *stream, +type_print PARAMS ((struct type *type, char *varstring, GDB_FILE *stream, int show)); extern char * @@ -443,28 +449,28 @@ baseclass_addr PARAMS ((struct type *type, int index, char *valaddr, value *valuep, int *errp)); extern void -print_longest PARAMS ((FILE *stream, int format, int use_local, - LONGEST value)); +print_longest PARAMS ((GDB_FILE *stream, int format, int use_local, + LONGEST val)); extern void -print_floating PARAMS ((char *valaddr, struct type *type, FILE *stream)); +print_floating PARAMS ((char *valaddr, struct type *type, GDB_FILE *stream)); extern int -value_print PARAMS ((value val, FILE *stream, int format, +value_print PARAMS ((value val, GDB_FILE *stream, int format, enum val_prettyprint pretty)); extern int val_print PARAMS ((struct type *type, char *valaddr, CORE_ADDR address, - FILE *stream, int format, int deref_ref, + GDB_FILE *stream, int format, int deref_ref, int recurse, enum val_prettyprint pretty)); extern int -val_print_string PARAMS ((CORE_ADDR addr, unsigned int len, FILE *stream)); +val_print_string PARAMS ((CORE_ADDR addr, unsigned int len, GDB_FILE *stream)); /* FIXME: Assumes equivalence of "struct frame_info *" and "FRAME" */ extern void print_variable_value PARAMS ((struct symbol *var, struct frame_info *frame, - FILE *stream)); + GDB_FILE *stream)); extern value value_arg_coerce PARAMS ((value)); @@ -473,7 +479,7 @@ extern int check_field PARAMS ((value, const char *)); extern void -c_typedef_print PARAMS ((struct type *type, struct symbol *new, FILE *stream)); +c_typedef_print PARAMS ((struct type *type, struct symbol *new, GDB_FILE *stream)); extern char * internalvar_name PARAMS ((struct internalvar *var)); |