X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Fvalue.h;h=eea0e594d59d1e8bc0689569e4bed46a9a1b319d;hb=e49d43ff73a309548dd2b576bb7b602f62be66d6;hp=4cdbf210788edaef75cf663122874d1388854021;hpb=4875ffdbdaf7793524464c99baea1d8eb0cb7e34;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/value.h b/gdb/value.h index 4cdbf21078..eea0e594d5 100644 --- a/gdb/value.h +++ b/gdb/value.h @@ -1,6 +1,6 @@ /* Definitions for values of C expressions, for GDB. - Copyright (C) 1986-2014 Free Software Foundation, Inc. + Copyright (C) 1986-2015 Free Software Foundation, Inc. This file is part of GDB. @@ -99,6 +99,10 @@ struct value *value_next (struct value *); extern struct type *value_type (const struct value *); +/* Return the gdbarch associated with the value. */ + +extern struct gdbarch *get_value_arch (const struct value *value); + /* This is being used to change the type of an existing value, that code should instead be creating a new value with the changed type (but possibly shared content). */ @@ -361,7 +365,7 @@ extern const gdb_byte *value_contents_for_printing (struct value *value); extern const gdb_byte * value_contents_for_printing_const (const struct value *value); -extern int value_fetch_lazy (struct value *val); +extern void value_fetch_lazy (struct value *val); /* If nonzero, this is the value of a variable which does not actually exist in the program, at least partially. If the value is lazy, @@ -567,8 +571,8 @@ extern int value_contents_eq (const struct value *val1, int offset1, const struct value *val2, int offset2, int length); -/* Read LENGTH bytes of memory starting at MEMADDR into BUFFER, which - is (or will be copied to) VAL's contents buffer offset by +/* Read LENGTH addressable memory units starting at MEMADDR into BUFFER, + which is (or will be copied to) VAL's contents buffer offset by EMBEDDED_OFFSET (that is, to &VAL->contents[EMBEDDED_OFFSET]). Marks value contents ranges as unavailable if the corresponding memory is likewise unavailable. STACK indicates whether the memory @@ -613,6 +617,11 @@ extern int unpack_value_field_as_long (struct type *type, const gdb_byte *valadd int embedded_offset, int fieldno, const struct value *val, LONGEST *result); +extern void unpack_value_bitfield (struct value *dest_val, + int bitpos, int bitsize, + const gdb_byte *valaddr, int embedded_offset, + const struct value *val); + extern struct value *value_field_bitfield (struct type *type, int fieldno, const gdb_byte *valaddr, int embedded_offset, @@ -665,9 +674,11 @@ 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, + const struct block *var_block, struct frame_info *frame); extern struct value *default_read_var_value (struct symbol *var, + const struct block *var_block, struct frame_info *frame); extern struct value *allocate_value (struct type *type); @@ -685,9 +696,9 @@ extern struct value *value_mark (void); extern void value_free_to_mark (struct value *mark); -extern struct value *value_cstring (char *ptr, ssize_t len, +extern struct value *value_cstring (const char *ptr, ssize_t len, struct type *char_type); -extern struct value *value_string (char *ptr, ssize_t len, +extern struct value *value_string (const char *ptr, ssize_t len, struct type *char_type); extern struct value *value_array (int lowbound, int highbound, @@ -1033,6 +1044,10 @@ extern struct value *value_copy (struct value *); extern struct value *value_non_lval (struct value *); +extern void value_force_lval (struct value *, CORE_ADDR); + +extern struct value *make_cv_value (int, int, struct value *); + extern void preserve_one_value (struct value *, struct objfile *, htab_t); /* From valops.c */ @@ -1073,7 +1088,10 @@ char *value_internal_function_name (struct value *); extern struct value *value_of_xmethod (struct xmethod_worker *); -struct value *call_xmethod (struct value *function, - int argc, struct value **argv); +extern struct type *result_type_of_xmethod (struct value *method, + int argc, struct value **argv); + +extern struct value *call_xmethod (struct value *method, + int argc, struct value **argv); #endif /* !defined (VALUE_H) */