struct symbol;
struct type;
struct ui_file;
+struct language_defn;
/* The structure which defines the type of a value. It should never
be possible for a program lval value to survive over a call to the
extern void set_value_bitsize (struct value *, int bit);
/* Only used for bitfields; position of start of field. For
- BITS_BIG_ENDIAN=0 targets, it is the position of the LSB. For
- BITS_BIG_ENDIAN=1 targets, it is the position of the MSB. */
+ gdbarch_bits_big_endian=0 targets, it is the position of the LSB. For
+ gdbarch_bits_big_endian=1 targets, it is the position of the MSB. */
extern int value_bitpos (struct value *);
extern void set_value_bitpos (struct value *, int bit);
extern void set_value_embedded_offset (struct value *value, int val);
/* If zero, contents of this value are in the contents field. If
- nonzero, contents are in inferior memory at address in the
- location.address field plus the offset field (and the lval field
- should be lval_memory).
+ nonzero, contents are in inferior. If the lval field is lval_memory,
+ the contents are in inferior memory at location.address plus offset.
+ The lval field may also be lval_register.
WARNING: This field is used by the code which handles watchpoints
(see breakpoint.c) to decide whether a particular value can be
extern struct value *value_of_register (int regnum, struct frame_info *frame);
+struct value *value_of_register_lazy (struct frame_info *frame, int regnum);
+
extern int symbol_read_needs_frame (struct symbol *);
extern struct value *read_var_value (struct symbol *var,
extern struct value *value_binop (struct value *arg1, struct value *arg2,
enum exp_opcode op);
-extern struct value *value_add (struct value *arg1, struct value *arg2);
+extern struct value *value_ptradd (struct value *arg1, struct value *arg2);
+
+extern struct value *value_ptrsub (struct value *arg1, struct value *arg2);
+
+extern LONGEST value_ptrdiff (struct value *arg1, struct value *arg2);
+
+extern int value_must_coerce_to_target (struct value *arg1);
-extern struct value *value_sub (struct value *arg1, struct value *arg2);
+extern struct value *value_coerce_to_target (struct value *arg1);
extern struct value *value_coerce_array (struct value *arg1);
extern struct value *value_zero (struct type *type, enum lval_type lv);
+extern struct value *value_one (struct type *type, enum lval_type lv);
+
extern struct value *value_repeat (struct value *arg1, int count);
extern struct value *value_subscript (struct value *array, struct value *idx);
+extern struct value *value_bitstring_subscript (struct type *type,
+ struct value *bitstring,
+ struct value *idx);
+
extern struct value *register_value_being_returned (struct type *valtype,
struct regcache *retbuf);
-extern struct value *value_in (struct value *element, struct value *set);
+extern int value_in (struct value *element, struct value *set);
extern int value_bit_index (struct type *type, const gdb_byte *addr,
int index);
-extern int using_struct_return (struct type *value_type);
+extern int using_struct_return (struct type *func_type,
+ struct type *value_type);
extern struct value *evaluate_expression (struct expression *exp);
extern struct value *evaluate_type (struct expression *exp);
+extern struct value *evaluate_subexpression_type (struct expression *exp,
+ int subexp);
+
+extern char *extract_field_op (struct expression *exp, int *subexp);
+
extern struct value *evaluate_subexp_with_coercion (struct expression *,
int *, enum noside);
int embedded_offset, CORE_ADDR address,
struct ui_file *stream, int format,
int deref_ref, int recurse,
- enum val_prettyprint pretty);
+ enum val_prettyprint pretty,
+ const struct language_defn *language);
extern int common_val_print (struct value *val,
struct ui_file *stream, int format,
int deref_ref, int recurse,
- enum val_prettyprint pretty);
+ enum val_prettyprint pretty,
+ const struct language_defn *language);
extern int val_print_string (CORE_ADDR addr, int len, int width,
struct ui_file *stream);
struct frame_info *frame,
struct ui_file *stream);
-extern int check_field (struct value *, const char *);
+extern int check_field (struct type *, const char *);
extern void typedef_print (struct type *type, struct symbol *news,
struct ui_file *stream);
extern struct value *value_of_local (const char *name, int complain);
+extern struct value * value_subscripted_rvalue (struct value *array, struct value *idx, int lowerbound);
#endif /* !defined (VALUE_H) */