/* Definitions for values of C expressions, for GDB.
- Copyright (C) 1986-2013 Free Software Foundation, Inc.
+ Copyright (C) 1986-2014 Free Software Foundation, Inc.
This file is part of GDB.
extern int value_stack (struct value *);
extern void set_value_stack (struct value *value, int val);
+/* Throw an error complaining that the value has been optimized
+ out. */
+
+extern void error_value_optimized_out (void);
+
/* value_contents() and value_contents_raw() both return the address
of the gdb buffer used to hold a copy of the contents of the lval.
value_contents() is used when the contents of the buffer are needed
extern int value_bytes_available (const struct value *value,
int offset, int length);
+/* Given a value, determine whether the contents bits starting at
+ OFFSET and extending for LENGTH bits are available. This returns
+ nonzero if all bits in the given range are available, zero if any
+ bit is unavailable. */
+
+extern int value_bits_available (const struct value *value,
+ int offset, int length);
+
/* Like value_bytes_available, but return false if any byte in the
whole object is unavailable. */
extern int value_entirely_available (struct value *value);
+/* Like value_entirely_available, but return false if any byte in the
+ whole object is available. */
+extern int value_entirely_unavailable (struct value *value);
+
/* Mark VALUE's content bytes starting at OFFSET and extending for
LENGTH bytes as unavailable. */
extern void mark_value_bytes_unavailable (struct value *value,
int offset, int length);
+/* Mark VALUE's content bits starting at OFFSET and extending for
+ LENGTH bits as unavailable. */
+
+extern void mark_value_bits_unavailable (struct value *value,
+ int offset, int length);
+
/* Compare LENGTH bytes of VAL1's contents starting at OFFSET1 with
LENGTH bytes of VAL2's contents starting at OFFSET2.
extern struct value *allocate_value (struct type *type);
extern struct value *allocate_value_lazy (struct type *type);
-extern void allocate_value_contents (struct value *value);
extern void value_contents_copy (struct value *dst, int dst_offset,
struct value *src, int src_offset,
int length);
const char *name, int *static_memfuncp,
const char *err);
+extern struct value *value_struct_elt_bitpos (struct value **argp,
+ int bitpos,
+ struct type *field_type,
+ const char *err);
+
extern struct value *value_aggregate_elt (struct type *curtype,
char *name,
struct type *expect_type,
extern void fetch_subexp_value (struct expression *exp, int *pc,
struct value **valp, struct value **resultp,
- struct value **val_chain);
+ struct value **val_chain,
+ int preserve_errors);
extern char *extract_field_op (struct expression *exp, int *subexp);
void (*destroy) (void *data);
};
-extern struct internalvar *
-create_internalvar_type_lazy (const char *name,
- const struct internalvar_funcs *funcs,
- void *data);
+extern struct internalvar *create_internalvar_type_lazy (const char *name,
+ const struct internalvar_funcs *funcs,
+ void *data);
/* Compile an internal variable to an agent expression. VAR is the
variable to compile; EXPR and VALUE are the agent expression we are